Вы можете сравнить с парой, как это:
# type intfloat = int * float;;
type intfloat = int * float
# let x : intfloat = (3, 5.5);;
val x : intfloat = (3, 5.5)
# let (int_part, _) = x in int_part;;
- : int = 3
# let (_, float_part) = x in float_part;;
- : float = 5.5
Существует функция (не метод) fst
, которая возвращает первый элемент пары.
# fst x;;
- : int = 3
Однако определение fst
обязательно использует сопоставление с образцом:
let fst (a, b) = a
В этом определении конструкция (a, b)
является шаблоном, который соответствует паре.
Сопоставление с образцом является неотъемлемой частью OCaml, а не просто необычной дополнительной функцией.