在OCaml中float-> float意味着什么?

时间:2015-05-11 16:21:33

标签: ocaml ml

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

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

1 个答案:

答案 0 :(得分:10)

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

  

float -> float -> float

怎么样?

->是右关联的,因此a -> b -> ca -> (b -> c)相同,这意味着一个函数接受a并生成另一个类型b -> c的函数。这样的函数通常用于模拟多参数函数(您可以使用f x yf应用于x,然后将生成的函数应用于y,这会有效地调用带有两个参数的内部函数)作为元组的替代。这种模拟多参数函数的方法称为currying。