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.

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")