@ TheoWinterhalter дал вам хороший ответ, но я немного расширю.
Выражение OCaml match
принимает выражение и последовательность шаблонов. Шаблоны, в свою очередь, представляют возможные значения выражения с заполнителями для частей подструктуры.
В своем выражении match
вы предоставляете логические тесты, а не шаблоны. Это не так, как работает match
. Там нет шаблона, который соответствует числам, превышающим определенное значение. Шаблоны имеют структуру и конкретные значения (по существу).
Вы можете заменить match
на if ... then ... else if ...
, чтобы получить значимую функцию.
Вы можете, как предполагает @TheoWinterhalter, использовать match x with ... | x when x > 10 ...
, но это просто сложный способ написания if
заявления.