3 ms·
F# doesn't flip arguments either. It's an operator: let (|>) x f = f x Is basically saying: x |> f is equal to f x So in F# it's the same as Elix
by louthy 12y ago
F# doesn't flip arguments either. It's an operator:
let (|>) x f = f x
Is basically saying:
x |> f is equal to f x
So in F# it's the same as Elixir, but the value x is applied to the function f (passed as the last argument). i.e.
list |> List.filter (fun x -> x > 0)
|> List.map (fun x -> x * x)
|> List.reduce (fun s x -> s + x)
- muraiki 12y agoI was going off what platz said in another comment, that |> flips the arguments to |> in the same way Haskells flip function does, which I thought the type signature of the the F# |> also indicated. I'm sorry if I'm misunderstanding things. I think the difference though is that the |> in Elixir is actually a macro that modifies the following function call's first argument. So list |> Enum.filter(&(&1 > 0)) doesn't end up using filter as a curried function as one would find in Haskell: Enum.filter(&(&1 > 0)) list The end result is actually: Enum.filter(list, &(&1 > 0))