composeは現行のECMAScriptで、pipeは今後のECMAScriptで出来ちゃうんです!
compose
このレポジトリが簡潔かつ最強ぽい
gist.github.com
レストパラメータを使って関数を引数にとり、(レストパラメータのおかげで配列に入ってる関数群を)reduceでじゃんじゃか合成していくスタイル.
あったま良いなぁ…
R.compose
既存ライブラリを使うなら、Ramda.jsのR.compose()とか。Promise等に対応した変種もある。
pipe
次世代のproposalとして策定中
現在はstage1
github.com
色々な表記法や派生系が議論されてるたい.
例えばこんなの
let result = "hello" |> doubleSay |> capitalize |> exclaim; result //=> "Hello, hello!"
アロー関数で部分適用をしてこう書いたり
let person = { score: 25 }; let newScore = person.score |> double |> (_ => add(7, _)) |> (_ => boundScore(0, 100, _)); newScore //=> 57
はやく正式採用されないかなー