FSharp order of function parameters

f#, functional-programming

Solution

The first order (predicate, sequence) is more appropriate for chaining sequence combinators via the `|>` operator. Typically, you have a single sequence to which you apply a number of operations/transformations, consider something like

xs |> Seq.map ... |> Seq.filter ... |> Seq. ...

etc. Reversing the order of the parameters to (source, predicate) would prohibit that (or at least make it much more awkward to express). That (and maybe also partial application) is why for (almost) all the default `Seq` combinators the last parameter is the sequence the operation is applied to.

Problem

Since functions in FSharp with multiple parameters get curried inherently into functions with only one parameter, should the signature of `Seq.filter` have to be ``` Seq.filter predicate source ``` ? How different will it be from ``` Seq.filter source predicate ``` Thanks

Original source

Related problems