Мат. часть
Расширяемые варианты
Расширяемые типы вариантов - это типы вариантов, которые могут быть расширены новыми конструкторами вариантов.
Тип исключений (exn
) это как раз и есть пример расширяемых вариантов. Как и алгебраические эффекты.
Конструкции fun
и function
Конструкция function
является базовой конструкцией, так как эта обычная функция от одно аргумента. А вот конструкция fun
можно назвать сокращением для определения каррированой функции.
История
В Caml Light (предшественнике OCaml) ключевое слово fun
могло принимать как несколько шаблонов (как function
), так и несколько аргументов (как fun
), но это вносило двусмысленность, которая требовала вставки круглых скобок вокруг некоторых шаблонов.
Поскольку эта проблема с лишними скобками была немного хлопотной, возможно, было решено не разрешать использование нескольких шаблонов в конструкции fun
, а вместо этого вернуться к fun
+ match
в этом случае.