В этом конкретном случае вы, конечно, могли бы просто написать aString = matchString
, но я полагаю, вы спрашиваете об общем случае. Литералы допускаются только на уровне модуля, и они должны иметь простое константное выражение справа ( source ).
Однако вы можете использовать активный шаблон для подобных случаев. Например (от здесь ):
let (|Equals|_|) expected actual =
if actual = expected then Some() else None
и затем используйте его так:
let matchFn (matchString : string) (aString : string) =
match aString with
| Equals matchString -> true
| _ -> false