何时使用管道|>与参数

Sla*_*zev 3 ocaml conventions reason

在Reason(和OCaml)中,有一种使用|>运算符传递参数的非传统方法.应该何时使用它的惯例是什么?我目前正在使用它只是因为我找到了它的新颖性.

kim*_*msk 9

使用|>(正向管道)有助于显示执行顺序.

例如,如果你想执行函数f,那么g像这样:

g(f(x))
Run Code Online (Sandbox Code Playgroud)

通过这种方式更容易看到执行的顺序(例如,f然后g):

x |> f |> g
Run Code Online (Sandbox Code Playgroud)

编程语言喜欢OCamlF#用于将数据从一种形式转换为另一种形式,因此|>可以用这种方式来显示数据如何转换.

let sqr = x => x * x;

[1,2,3]
|> List.map (x => x + 1)
|> List.map (sqr);
Run Code Online (Sandbox Code Playgroud)

  • 这取决于样式和代码的可读性.我不知道`x |> f`如何比`f(x)`,或者`OCaml/F#`,`fx`更好,所以我永远不会那样使用它. (7认同)