Depends on your perspective.
I initially didn’t like the style at all and always wanted to start the pipeline with a fully populated function. The way I made my peace with it was to accept that the pipeline is in effect emulating (lambda calculus style) function composition, something that only works when all the functions involved only have a single parameter.
|> Enum.take(5)
is suggestive of a partial application to bring Enum.take/2 down to an arity of 1. In the case of
|> :crypto.strong_rand_bytes
:crypto.strong_rand_bytes is already at an arity of 1 - so it is ready to be composed as is.
This in effect places more emphasis on the composition than the value that enters it.


















