title: Has anyone proposed a Pipe operator for javascript?
body: <p>Many languages have an operator that allows you to pipe the results of one operation into a call to another (e.g. the <code>|</code> operator in bash, the <code>|&gt;</code> operator in F#).</p>
  
  <p>One of the great advantages to my mind of the common idiom of method chaining in javascript is that it reads top-to-bottom, left-to-right:</p>
  
  <pre><code>var fooOddSquares = [1, 2, 3, 4, 5]
      .filter(x =&gt; x % 2)
      .map(x =&gt; "foo" + x * x)
      .reduce(((acc, str, i) =&gt; acc[i + 1] = str; return acc), {});
  
  // =&gt; {1: "foo1", 2: "foo9", 3: "foo25"}
  </code></pre>
  
  <p>compared to compositional code:</p>
  
  <pre><code>var something = func5(
      func4(
          func3(
              func2(
                  func1(
                      somedata
                  )
              )
          )
      )
  );
  </code></pre>
  
  <p>which reads right-to-left, bottom-to-top. I realize this could be cleaned up via function composition, but that's not necessarily the point. Just to be absolutely clear with what I'm looking for:</p>
  
  <pre><code>var something = func1(somedata)
      |&gt; func2
      |&gt; func3
      |&gt; func4
      //etc...
  </code></pre>
  
  <p>Doing a google search on the pipe operator in javascript mostly turns up info about the bitwise OR operation. With some digging however I was able to dig up <a href="http://www.2ality.com/2011/12/fake-operator-overloading.html" rel="noreferrer">this</a> article describing a dirty-hacked version of operator overloading that could implement something of what I'm talking about. I also unearthed <a href="https://gist.github.com/impinball/31f0e25310396736185c" rel="noreferrer">this</a> gist that describes said operator and says that "it has been proposed for javascript".</p>
  
  <p>Looking at ES 2016, I see proposals for an exponentiation operator and the bind operator. Both are useful, but not what I want. So per the headline in the gist, has anyone actually proposed this for javascript?</p>