为什么使用后向管道运算符而不是函数链? [英] Why use a Backward Pipe Operator instead of Function Chaining?

查看:10
本文介绍了为什么使用后向管道运算符而不是函数链?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为什么使用反向管道运算符而不是函数链接?

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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆