我正在寻找一个函数,该函数接受两个函数并返回一个函数,当应用于参数时,如果这些函数在应用于给定参数时返回相同的值,则返回true或false。
你可以这样做:
R.converge(R.equals, [func1, func2])
一个愚蠢的例子:
const eq = R.converge(R.equals, [R.T, R.identity]);
eq('foo') // false
eq(true) // true
我正在寻找一种更优雅的方法来实现这一目标。
答案 0 :(得分:3)
这是一种可能性:
const eq = lift(R.equals);
eq(R.T, R.identity)('foo'); //=> false
eq(R.T, R.identity)(true); //=> true
您可能会或可能不会发现这更优雅。显然,您可以命名eq(T, identity)
以获得可重用的功能。
我有点惊讶Ramda没有提供这个开箱即用
我想知道为什么。我从来没有要求过这样的事情。它从未在Ramda存储库中被提升为issue。你的用例是什么?
Stackoverflow真的很糟糕。只是试图从人们那里得到一些帮助,我得到了投票。那就是为什么我几乎再也不会回到这里了。
目前,有一个投票和一个投票。两个当前"关闭"原因与它过于舆论有关。对于一个要求更优雅的问题来说,这当然是合理的。解。我建议你不要把看票当作对你的反思,而只是看你的问题/答案。虽然我确定偶尔会出现混乱,但大多数人都在投票,以帮助改善网站。他们认为你的问题需要运作。倾听和学习。你不必同意;你不必改变你的问题,但你至少应该考虑他们是否正确。