JavaScriptで関数型スタイルでプログラミングできるramdaは便利です。
よく使われる機能としてpipe
とcompose
があります。
両者の違いは、左から右に適用するか右から左に適用するかです。
const R = require('ramda')
const calcCompose = R.compose(Math.abs, R.add(1), R.multiply(2))
const calcPipe = R.pipe(Math.abs, R.add(1), R.multiply(2))
calcCompose(-4)
// => 7
calcPipe(-4)
// => 10
ramdaのcomposeとpipeは言わずもがな便利で、R.pathや R.curryの便利さはわかるが、これをライブラリの依存にぶっこんでくるのはサイズ的に許しがたい pic.twitter.com/8wUYV3S9Ad
— 無職.js (@akameco) September 6, 2017