Ключевое слово mod
является двоичным оператором (например, lsl
, lsr
, asr
, land
, lor
, lxor
и or
).Например,
let zero = 2 mod 2
Двоичный оператор можно преобразовать в стандартную функцию, заключив их в скобки,
let zero = (mod) 2 2
, поэтому анализатор ожидает закрывающую скобку после (mod
.
Тогда сопоставление с образцом неверно, поскольку n mod 2 == 0
является выражением, а не образцом (и вам следует использовать структурное равенство =
, а не физическое равенство ==
):
let f n = match n mod 2 with
| 0 -> ...
| _ -> ...
или
let f n = match n mod 2 = 0 with
| true -> ...
| false -> ...
, что, вероятно, проще с if ... then ... else ...
.