Ну, код, который вы даете, использует выражение функции (также известное как лямбда) и не дает функции имя.
Если вы хотите вызвать функцию позже, вам просто нужно дать ееимя. Вы можете использовать точно такое же выражение, если хотите:
let sum = fun (x, y, z, u) -> x + y + z + u
(Существует некоторое несоответствие типов между описанием проблемы и этим решением.
Это правда, предварительно нет-определенные функции OCaml для извлечения компонентов кортежей с более чем 2 элементами. Конечно, вы можете легко написать свой собственный:
let fst3 (a, b, c) = a
let snd3 (a, b, c) = b
let thd3 (a, b, c) = c