eastwing Asked:2020-08-29 13:28:53 +0000 UTC2020-08-29 13:28:53 +0000 UTC 2020-08-29 13:28:53 +0000 UTC <| 运算符如何工作? 772 你好! 帮助我弄清楚反向管道是如何工作的。 假设有一段代码: let add x y = x + y [<EntryPoint>] let main argv = add 2 <| add 3 <| 4 |> add 7 |> add 8 此代码不正确,但删除后将变为正确add 2 <| 为什么这段代码现在不正确?传递了add 2什么? f# 1 个回答 Voted Best Answer eastwing 2020-08-30T09:48:13Z2020-08-30T09:48:13Z 用Foggy Finger想通了 事实是反向管道运算符也是左关联的,并且表达式从左到右进行计算,无论是否存在反向管道- 顺便说一句,这是完全合乎逻辑的。那些。表达式add 2 <| add 3 <| 4不应该这样读: 传递4给add 3,然后将结果传递给add 2 , 所以: 传递,然后传递add 2给结果add 34 在这个特定的示例中,我尝试传递一个函数(类型的值int -> int)来代替整数参数 ( int),这当然是一个错误。例如,您可以像这样修复它:add 2 <| (add 3 <| 4)- 在这种情况下,add 2加法的结果将被转移到,即 所需的整数。
用Foggy Finger想通了
事实是反向管道运算符也是左关联的,并且表达式从左到右进行计算,无论是否存在反向管道- 顺便说一句,这是完全合乎逻辑的。那些。表达式
add 2 <| add 3 <| 4不应该这样读:, 所以:
在这个特定的示例中,我尝试传递一个函数(类型的值
int -> int)来代替整数参数 (int),这当然是一个错误。例如,您可以像这样修复它:add 2 <| (add 3 <| 4)- 在这种情况下,add 2加法的结果将被转移到,即 所需的整数。