OCaml 中的 float->float 是什么意思?

What does float->float mean in OCaml?

我有这个类型,它定义了一个表达式。我知道 * 符号可以让我添加对,但是 -> 有什么用?

 # type expression = Value of float                   
                | Sum of (expr*expr)     
                | Subtraction of (expr*expr)     
                | Fc1 of ((float->float)*expr)   

-> 运算符用于函数类型。 a -> b 表示“a in,b out”,因此 float -> float 是一种以浮点数作为参数并生成浮点数作为结果的函数类型。

What about float -> float -> float

-> 是右结合的,因此 a -> b -> ca -> (b -> c) 相同,意思是一个接受 a 并产生另一个类型 [=20 的函数的函数=].像这样的函数通常用于模拟多参数函数(您可以使用 f x yf 应用到 x,然后将结果函数应用到 y,这实际上调用带有两个参数的内部函数)作为元组的替代。这种模拟多参数函数的方式称为柯里化。