title: Clojure style function "threading" in Python
body: <p>Clojure has a "->" macro which inserts each expression recursively as the first argument of the next expression.</p>
  
  <p>This means that I could write:</p>
  
  <pre><code>(-&gt; arg f1 f2 f3)
  </code></pre>
  
  <p>and it behaves like (shell piping):</p>
  
  <pre><code>f3(f2(f1(arg)))
  </code></pre>
  
  <p>I would like to do this in Python; however, searching seems to be a nightmare!  I couldn't search for "->", and neither could I search for Python function <em>threading</em>!</p>
  
  <p>Is there a way to overload, say, the | operator so that I could write this in Python?</p>
  
  <pre><code>arg | f1 | f2 | f3
  </code></pre>
  
  <p>Thanks!</p>