Ocaml 操作员'|&燃气轮机';在facebook上';s流
我是ocaml新手,通过了一些教程,并认为下一步,我将通过阅读一些OOS来熟悉语法。所以我从facebook下载 然而,我在使用“|>”时遇到了一些我无法理解的奇怪语法 首先,我遇到了“|>”: 当我查找它的定义时,我在另一个文件中发现: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
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))