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 -> c
与 a -> (b -> c)
相同,意思是一个接受 a
并产生另一个类型 [=20 的函数的函数=].像这样的函数通常用于模拟多参数函数(您可以使用 f x y
将 f
应用到 x
,然后将结果函数应用到 y
,这实际上调用带有两个参数的内部函数)作为元组的替代。这种模拟多参数函数的方式称为柯里化。
我有这个类型,它定义了一个表达式。我知道 *
符号可以让我添加对,但是 ->
有什么用?
# 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 -> c
与 a -> (b -> c)
相同,意思是一个接受 a
并产生另一个类型 [=20 的函数的函数=].像这样的函数通常用于模拟多参数函数(您可以使用 f x y
将 f
应用到 x
,然后将结果函数应用到 y
,这实际上调用带有两个参数的内部函数)作为元组的替代。这种模拟多参数函数的方式称为柯里化。