为什么使用后向管道运算符而不是函数链? [英] Why use a Backward Pipe Operator instead of Function Chaining?
本文介绍了为什么使用后向管道运算符而不是函数链?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
为什么使用反向管道运算符而不是函数链接?
let distanceFromOrigin aPoint =让平方 x = x * xsqrt(正方形 aPoint.x + 正方形 aPoint.y)
对比
let distanceFromOrigin aPoint =让平方 x = x * x方格<|正方形 aPoint.x + 正方形 aPoint.y
解决方案
因为左结合(f <| g <| x
被解析为 (f <|g) <| x
可惜不是 f <| (g <| x)
等价于 x |> g |> f
),我发现它只有在你想删除括号时才有用(而不是 f(长表达式)
,你写 f <| long expression
).>
Why use a backward pipe operator instead of a function chaining?
let distanceFromOrigin aPoint =
let square x = x * x
sqrt (square aPoint.x + square aPoint.y)
vs
let distanceFromOrigin aPoint =
let square x = x * x
sqrt <| square aPoint.x + square aPoint.y
解决方案
Because of the left associativity (f <| g <| x
is parsed as (f <| g) <| x
and sadly not as f <| (g <| x)
which is equivalent to x |> g |> f
), I found it useful only when you want to remove parentheses (instead of f (long expression)
, you write f <| long expression
).
这篇关于为什么使用后向管道运算符而不是函数链?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文