【发布时间】:2018-01-30 22:16:53
【问题描述】:
我的目标是链接两个在 R.both 中采用相同两个参数的谓词,以便我可以独立传递参数 - 即 curried。
这是我整理的 repl 实现:
const isXEqual = (obj1, obj2) => R.equals(obj1.x, obj2.x);
const isYEqual = (obj1, obj2) => R.equals(obj1.y, obj2.y);
const a = R.curry(isXEqual);
const b = R.curry(isYEqual);
const isBoth_Curried = R.both(a, b);
const obj1 = {"x": 6, "y": 5};
const obj2 = {"x": 6, "y": 5};
const obj3 = {"x": 5, "y": 5};
isBoth_Curried(obj1, obj2); //==> true
isBoth_Curried(obj1, obj3); //==> false
isBoth_Curried(obj1)(obj2); //==> true
但是: isBoth_Curried(obj1)(obj3); //==> true
真的很困惑 - 我在这里错过了什么?
【问题讨论】:
标签: javascript functional-programming ramda.js