Ever piped something in UNIX?

F# has the same feature, just with the |> operator. It simplifies the execution flow by not having to bind each step to then pass it as an argument. 

Pipe Operator in F#

Tip: want to design pipe friendly functions? Keep your most varied arguments to the right.

Code Snippet
[1;2;3;4;5;6;42]
|> List.map (fun number -> number + 2)
|> fun numbers ->
    if numbers |> List.contains 42 then
        (numbers, fun x -> x * 42)
    else
        (numbers, fun x -> x + 42)
|> fun (numbers, numberTransformer) -> 
    numbers 
    |> List.map numberTransformer
|> List.rev
|> List.iter (fun number -> number |> printfn "%i")