使用 Ramda 的形式 f(x)(g(x)) 的函数组合

Function composition of form f(x)(g(x)) using Ramda

我无法使用 Ramda 中提供的函数找出 f(x)(g(x)) 的转换。我希望理想情况下像 R.something(f, g)(x) 这样的东西——只要 x 只出现一次并且是最后一个参数。

f 是一个采用 x 的函数,returns 是一个函数

g 是一个采用 x 的函数,returns 是一个值

我已经尝试了 pipecomposechain,但老实说,我猜很难,但没有一个能奏效。我最近问了一个类似的问题,我很想知道一个具有大量有用身份的资源,如果存在的话,所以我不需要继续询问 :)

chain 很接近:它对函数执行 chain(f, g)(x) == f(g(x))(x)。所以你只需要在将它传递给 chain:

之前翻转 f
R.chain(R.flip(f), g)(x)

const something = R.compose(R.chain, R.flip)
something(f, g)(x)