将参数传递给下一个函数的函数

时间:2017-10-27 11:39:14

标签: javascript functional-programming ramda.js

是否有一个ramda函数接受函数参数并将其传递给该范围内调用的下一个函数?

我希望在不使用箭头功能的情况下实现这样的目标:

R.allPass([x => R.not(R.isEmpty(x)), R.isNil])(data)

它看起来可能类似于这个:

const passArgument = (func, func2) => arg => func(func2(arg));

R.allPass([passArgument(R.not, R.isEmpty), R.isNil])(data)

1 个答案:

答案 0 :(得分:2)

R.compose是你所追求的功能。

R.allPass([R.compose(R.not, R.isEmpty), R.isNil])(data)

从左到右也有R.pipe组合功能。

对于此特定示例,您可能也对R.bothR.complement感兴趣,可以将其实现为:

R.both(R.complement(R.isEmpty), R.isNil)

我不完全确定你是否曾找到同时为null / undefined且非空的内容,但为此要评估为true