point-free风格

在数据处理的过程,不关心参数的定义,只关注合成运算的过程。甚至不需要声明参数。本质是通过一些更小粒度的函数,组合起来,完成更复杂的运算。(将命令式合并执行)

//例: 求一串由数字组成的字符串的最大值
const numStr = '1 4 2 99 5 2 0 44';

// 将字符串转为数组
/**
 * 将字符串转为数组
 * 输入输出 str => []
 * @param str
 */
const strToArr = str => str.splite(' ');
/**
 * 将字符串转为int类型
 * 输入输出str => int
 * @param str
 */
const strToNum = str => Number(str);
/**
 * 将字符串数组 转换为数字数组
 * [str] => [int]
 * @param strs
 */
const strsToNum = strs => strs .map(strToNum);
/**
 * 求最大值
 * 输入输出 [int] => int
 * @param arr
 */
const getMax = arr => Math.max(...arr );
/**
 * 命令式方式
 */
const getMaxByStr1 = (strs)=> {
	/**
	 * 各个输入输出
	 * str => [str]
	 * [str] => [int]
	 * [int] => int
	 */
	const strsArr = strToArr(strs);
	const numStrs = strsToNum(strsArr);
	const max = getMax(numStrs);
	return max;
};
getMaxByStr1(numStr);

/**
 * point-free风格
 * 将函数组合 不关心参数之间的转换
 */
const getMaxByStr2 = R.pipe(
	strToArr,
	strsToNum,
	getMax
);
getMaxByStr2(numStr);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值