Нет функций без параметров, и нет преобразования с многопараметрическими функциями. Как говорится в цитате, «каждая функция является однопараметрической функцией». Всегда есть только один параметр, не больше и не меньше.
То, что вы можете рассматривать как функцию без параметров, - это, вероятно, функция, которая принимает один параметр типа unit
:
let f () = ...
Тип unit
имеет только одно значение, ()
(которое также называется «единицей»), следовательно, оно не несет никакой информации, но технически это значение. Вы можете думать об этом как о пустом кортеже.
Двухпараметрическая функция - это функция, которая принимает один параметр и возвращает другую функцию, которая принимает другой параметр. Помните, что функции являются первоклассными, то есть это значения, которые могут быть возвращены из функций и привязаны к именам переменных. Таким образом, эти две формы эквивалентны, первая - это просто синтаксический сахар для второй:
let f a b = ...
let f = fun a -> fun b -> ...
Трехпараметрическая функция - это функция, которая возвращает функцию, которая возвращает функцию, и так далее. Это называется карри. А с каррированными функциями частичное применение функции - это просто обычное применение функции. Просто приложение-функция возвращает функцию, а не какое-либо другое значение.