'a和之间有什么区别'_l?
我正在看这个错误,无法理解它:
Error: This expression has type ('a -> float polynomial) list but an expression was expected of type float polynomial list derivlist: ('_l ? float polynomial) list
Run Code Online (Sandbox Code Playgroud) 当我学习OCaml essentials时,我被告知OCaml中的每个函数实际上只是一个只有一个参数的函数.多参数函数实际上是一个函数,它接受一个参数并返回一个函数,该函数接受下一个参数并返回....
这是好事,我明白了.
所以我的问题是:
情况1
如果我做
let plus x y = x + y
Run Code Online (Sandbox Code Playgroud)
在OCaml内部编译时,OCaml会将其更改为let plus = fun x -> fun y -> x + y?
或者相反
案例2
如果我做
let plus = fun x -> fun y -> x + y
Run Code Online (Sandbox Code Playgroud)
OCaml会将其转换为let plus x y = x + y?
哪种情况属实?在正确的情况下,OCaml编译器的优点或优化是什么?
另外,如果情况2为真,那么OCaml正在考虑做什么呢?我的意思是它实际上是相反的,对吗?
这个问题实际上与理解Core的`Fn.const`有关
ocaml ×2