При написании функции, которая может принимать карри, вы можете написать ее как функцию с одним аргументом, которая возвращает функцию. Например,
let add x =
let inner y = x + y
inner
Так что вы можете сделать:
add 3 4
или же:
let add3 = add 3
add3 4
Мой вопрос заключается в том, что, поскольку вы возвращаете функцию, вы концептуально вызываете функцию дважды (внешняя функция и внутренняя функция). Это медленнее, чем:
let add x y = x + y
или компилятор оптимизирует вызовы add 3 4
в определении карри?