javascript - 我可以更好地 curry 吗?

标签 javascript functional-programming currying ramda.js

我使用 ramda 制作了这段代码,以检查数组 B 中是否存在数组 A 的任何值,假设它们是平面数组。

var hasAtLeastOneTruthValue = ramda.contains(true);
var alpha = [1,2,3]
var beta = [4,1,7];

var valueOfArrayInArray = ramda.map(function(a_v){
    return ramda.contains(a_v, beta);
});

console.log(hasAtLeastOneTruthValue(valueOfArrayInArray(alpha)));

我不喜欢的是 硬编码 beta inside valueOfArrayInArray。是否可以采取不同的方式来做到这一点?请注意,我并不是在寻找具有相同效果的完全不同的实现,而只是为了在这种情况下更好地理解柯里化(Currying)。

最佳答案

您可以从右侧部分应用 contains:

var valueOfArrayInArray = R.map(R.rPartial(R.contains, beta))

或者翻转它:

var valueOfArrayInArray = R.map(R.flip(R.contains)(beta))

关于javascript - 我可以更好地 curry 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26024735/

相关文章:

javascript - JSON.parse 提示 "unexpected end of data"

Javascript 像 jquery 一样显示/隐藏

javascript - Webpack 输出包大于预期

typescript - 类型化对象联合的详尽映射

kotlin - 如何使用 Kleisli 访问调用链的每个函数中的上下文?

scala - 与下划线一起使用时,部分函数应用程序过早地运行代码块

javascript - 淡入淡出效果影响我的输出

lambda - 在方案中使用多个 lambda 是什么意思?

c - 这个熟悉的函数在 C 中是如何实现的呢?

Scala- curry 和默认参数