今天我們要開始體驗 Ramda,請大家到 Ramda.js 官網安裝 Ramda 後,
就可以開始以下的實作。
像是前幾天提到用 curry 實作的 add function,
Ramda 就有提到封裝好的 function。
import * as R from 'ramda';
R.add(3)(4); // 7
R.add(3,4); // 7
以上兩種寫法都可以得到相同的結果。
const incrementOne = x => x + 1;
R.map(incrementOne, [3, 4, 5]); //=> [4, 5, 6]
R.map(incrementOne, {x: 3, y: 4, z: 5}); //=> {x: 4, y: 5, z: 6};
比較特別得是 Ramda.js 的 map 有實作了 object 也可以透過 map 去做 object 的複製和值的變更的方法。
使用 ramda.js 的 pipe 可以把 function 組合在一起。
const array = [1,2,3];
const multiplyFunc = x =>x*3;
const result =(x)=>
{return R.pipe(
R.map(multiplyFunc,R.__),
R.difference(R.__, [7,6,5,4,3]),
)(x)}
result(array); // 9