Skip to content

Labels

Использование именованных аргументов (labeled arguments) зачастую предпочтительнее, если ваша функция принимает три и более параметра.

Пример

В стандартной библиотеке для некоторых модулей существуют модули-двойники, использующие подход именованных аргументов.

ocaml
(* Bytes.sub *)
val sub : bytes -> int -> int -> bytes

(* BytesLabels.sub *)
val sub : bytes -> pos:int -> len:int -> bytes

Преимущества:

  • Больше информации в сигнатуре
  • Более гибкая возможность композиции функций