Вы можете выполнять поиск по образцу для нескольких аргументов функции, создавая кортеж и затем деструктурируя его в выражении match:
let f x y =
match x, y with
| pattern1 -> expr1
| ...
Альтернативно, если вам не нужна функция curried, вы можете сделать это, заставив f
принимать кортеж в качестве единственного аргумента:
let f (x, y) = function
| pattern1 -> expr1
| ...
Преимущество последнего метода в том, что вам не нужно дважды писать аргументы каждый раз, когда вы определяете функцию. Но функции, принимающие кортеж, похоже, не так популярны, как curried-функции.
Так какой из этих двух методов считается каноническим, или предпочтительным, в сообществе OCaml?
EDIT: Как указал pad ниже, я имею в виду let f = function blah blah
во втором фрагменте кода.