Ocaml 操作员'|&燃气轮机';在facebook上';s流

Ocaml 操作员'|&燃气轮机';在facebook上';s流,ocaml,Ocaml,我是ocaml新手,通过了一些教程,并认为下一步,我将通过阅读一些OOS来熟悉语法。所以我从facebook下载 然而,我在使用“|>”时遇到了一些我无法理解的奇怪语法 首先,我遇到了“|>”: 当我查找它的定义时,我在另一个文件中发现: let (|>) (o : 'a) (f : 'a -> 'b) : 'b = f o 但我不太确定它在做什么,或者它是否有关联 你能帮忙吗 let (|>) (o : 'a) (f : 'a -> 'b) : 'b = f o

我是ocaml新手,通过了一些教程,并认为下一步,我将通过阅读一些OOS来熟悉语法。所以我从facebook下载

然而,我在使用“|>”时遇到了一些我无法理解的奇怪语法

首先,我遇到了“|>”:

当我查找它的定义时,我在另一个文件中发现:

let (|>) (o : 'a)  (f : 'a -> 'b) : 'b = f o
但我不太确定它在做什么,或者它是否有关联

你能帮忙吗

let (|>) (o : 'a)  (f : 'a -> 'b) : 'b = f o
这是在声明一个名为
|>
的中缀运算符,您知道它是中缀运算符,因为名称周围有括号

它有两个参数,
o
具有未知类型
'a
,和
f
,后者是从
'a
到第二个未知类型
'b
的函数

|>
返回类型为
'b
的内容

结果由
fo
计算

换句话说,
o |>f
fo
相同。这只是一个肮脏/整洁的技巧,能够以这种方式在一个链中编写参数声明,而不必在所有内容周围放很多括号。运算符的优先级较低,因此它充当每个标志声明之间的分隔符。

它是(向前)管道运算符

而不是在表单中调用函数:

f arg
管道操作符允许您以以下方式调用它:

arg |> f
这使得链接函数调用更容易读写

arg |> f |> g |> h
vs

是管道操作员 它允许非常容易地应用一系列功能: f(g(hx))可以写成x |>h |>g |>f

它的声明使用括号表示它是一个中缀运算符:
x |>f表示fx.

“您知道它是内联的”:这与其他语言中的“中缀”相同吗?正确的单词是中缀,答案应该是固定的。
arg |> f |> g |> h
h (g (f arg))