Будет ли OCaml преобразовывать функцию с несколькими аргументами в карри или наоборот?
Когда я изучал основы OCaml, мне сказали, что каждая функция в OCaml на самом деле является функцией только с одним параметром. Функция с несколькими аргументами на самом деле является функцией, которая принимает один аргумент и возвращает функцию, которая принимает следующий аргумент argumetn и возвращает ....
Это карри, я понял.
Итак, мой вопрос:
Случай 1
если я сделаю
let plus x y = x + y
Внутри OCaml при компиляции OCaml изменит его наlet plus = fun x -> fun y -> x + y
?
или наоборот
случай 2
Если я сделаю
let plus = fun x -> fun y -> x + y
OCaml преобразует его вlet plus x y = x + y
?
Какой случай верный? Что сделал корректный компилятор OCaml в правильном случае?
Кроме того, еслислучай 2 верно, тогда какой смысл считать, что OCaml делает карри? Я имею в виду, что на самом деле все происходит наоборот, верно?
Этот вопрос на самом деле связан сПонимать ядро `Fn.const`