Ramda 函数,在应用于参数时评估函数的相等性

Ramda function that evaluates equality of functions when applied to an argument

我正在寻找一个函数,它有两个函数和 return 一个函数,当应用于一个参数时,如果这些函数 return 相同,return 为 true 或 false应用于给定参数时的值。

您可以这样完成:

R.converge(R.equals, [func1, func2])

一个愚蠢的例子:

const eq = R.converge(R.equals, [R.T, R.identity]);

eq('foo') // false
eq(true) // true

我正在寻找一种更优雅的方法来完成此任务。

这是一种可能性:

const eq = lift(R.equals);
eq(R.T, R.identity)('foo'); //=> false
eq(R.T, R.identity)(true); //=> true

您可能会或可能不会觉得这更优雅。显然,您可以命名 eq(T, identity) 以获得可重用的函数。

I'm a bit surprised Ramda doesn't offer this out of the box though

我不知道为什么。我从来没有这样的要求。它从未在 Ramda 存储库中作为 issue 提出。你的用例是什么?


Whosebug really sucks. Just trying to get a little help from people and I get downvoted. Thats why I almost never come back here anymore.

目前,有一张赞成票和一张反对票。当前的两个 "close" 原因与它过于基于意见有关。对于要求 "more elegant" 解决方案的问题来说,这当然是合理的。我建议您不要将赞成票视为对您的反映,而只是对您的 questions/answers 的反映。虽然我确信偶尔会有问题,但大多数人都投了反对票以帮助改进网站。他们认为您的问题需要解决。边听边学。你不必同意;你不必改变你的问题,但你至少应该考虑一下他们是否正确。