elixir-lang/elixir — pull request #2056 by devinus (2014-02-14 01:36:55+00:00)
Title: Add a pipe-last operator (|>>)

Because idiomatic Elixir interfaces are noun-first, it's too awkward
to use the pipe operator to build up a "thing" when your builder
functions are located in different modules. Functions where the
accumulated "thing" is the last argument of your functions
especially benefit from the pipe-last operator.

Example:

```elixir
thing = Thing.new
|>> Foo.spam_thing(foo)
|>> Bar.ham_thing(bar)
|>> Baz.eggs_thing(baz)
```

Interfacing with Erlang functions also conveniently becomes easier:

```elixir
workers = state.workers
|>> :queue.filter(&(&1 != worker))
|>> :queue.in(new_worker(state.supervisor))
```

The pipe-last operator is also affectionately known as
"pipe harder".