【问题标题】:Function that passes arguments to the next function将参数传递给下一个函数的函数
【发布时间】:2017-10-27 20:29:21
【问题描述】:

是否有一个 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)

【问题讨论】:

    标签: javascript functional-programming ramda.js


    【解决方案1】:

    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

    【讨论】:

    • 啊,太明显了!非常感谢! Ps:是的,是编造的例子
    猜你喜欢
    • 2014-01-06
    • 2019-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 2020-10-03
    • 2017-08-07
    相关资源
    最近更新 更多