我正在学习Jason Hickey 的 Objective Caml 简介。只是对嵌套函数(currying)有疑问。
有一个现有的问题如何理解 Haskell 中的“Currying”?,但我想我正在寻找略有不同的问题的答案。
它说我们可以let sum = fun i j -> i + j;;
写成let sum = fun i -> fun j -> i + j;;
我的问题很简单:
我可以这样理解上面的定义let sum = fun i -> i + fun j -> j;;
吗?
我知道它不会通过编译器,但我只是尝试将这种映射OCaml function definition
到mathematics functions
.
在我上面的想象中,我们可以很容易地在数学中编写函数,f(i) = i + g(j); and g(j) = j
.
我应该总是做这种逻辑映射以便于理解吗?