作用:函数组合调试是未来在使用函数组合说debug异常或者错误,如果去检测错误发生在哪个位置
/**
* 函数组合 调试
* NEVE GO BACK => neve-go-back
*/
const _ = require('lodash');
// 使用柯里化函数将二元函数 转化成 一元函数
const split = _.curry((sep, str) => _.split(str, sep));
// console.log(split(' ')('NEVE GO BACK')) // [ 'NEVE', 'GO', 'BACK' ]
// _.toLower()
// 使用柯里化函数将二元函数 转化成 一元函数
const join = _.curry((sep, array) => _.join(array, sep));
// log 调试函数
const log = _.curry((tag, values)=> {
console.log(tag);
return values;
})
const map = _.curry((func, array) => _.map(array, func));
const fn = _.flowRight(join('-'), log('map后'), map(_.toLower), log('split后'), split(' '));
console.log(fn('NEVE GO BACK'));