有这么一种情况,一个函数有多个参数,有些参数已经确定,要从参数表中消去。得到参数更少的简化函数。这个过程,可以用curry化来完成。
例如,有一个函数,用于发起GET请求,读取网页上一个内容。这个内容采用了RESTful的接口。请求数据的url为 http://host/something/_id
函数签名: getData(prefix,id)
调用举例:getData('http://host/something/',1)
当prefix已知时,我希望简化这个函数。构造函数getPost(id)
getPost(id) <=> getData('http://host/post/',id)
以前我的做法是:
function getPost(id){
return getData('http://host/post/',id)
}
这样固然是可以的,但是如果有大量这样的包装函数要写,也是很麻烦的事。
用ramdajs,可以简单一点。
const _getData= R.curry(getData);
const getPost=_getData('http://host/post/')