Understood with the help of Foggy Finger
The fact is that the reverse pipeline operators are also left-associative , and expressions are calculated from left to right, regardless of the presence of a reverse pipeline - which, by the way, is completely logical. Those. expression add 2 <| add 3 <| 4 add 2 <| add 3 <| 4 add 2 <| add 3 <| 4 should read wrong:
pass 4 to add 3 , and then pass the result to add 2
, and so:
in add 2 pass add 3 , then pass 4 to the result
In this particular example, I tried to pass a function (value of type int -> int ) to the place of an integer argument ( int ), which, of course, is an error. You can fix it, for example, like this: add 2 <| (add 3 <| 4) add 2 <| (add 3 <| 4) - in this case the result of addition will be transferred to add 2 , i.e. required integer.
add 2 <| 2add 2 <| 2Or what example did you have in mind? Without right operators? - eastwing