我无法使用Ramda中可用的函数找出f(x)(g(x))
的变换。我希望理想的是R.something(f, g)(x)
之类的东西 - 只要x
只出现一次并且是最后的论据。
f
是一个函数x
,它返回一个函数
g
是一个取x
的函数,它返回一个值
我已经尝试了pipe
,compose
,chain
,但是我猜得非常努力,而且没有人能够工作。我最近问了一个类似的问题,我很想知道一个有大量有用身份的资源,如果存在,所以我不需要继续问SO:)
答案 0 :(得分:2)
chain
已关闭:它在函数上执行chain(f, g)(x) == f(g(x))(x)
。因此,您只需在将f
传递给chain
之前翻转R.chain(R.flip(f), g)(x)
:
const something = R.compose(R.chain, R.flip)
something(f, g)(x)
或
import numpy as np
# given group counts: 3 4 3 2
# given flattened data:[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ]
group_counts = np.array([3,4,3,2])
data = np.arange(group_counts.sum()) # placeholder data, real life application will be a very large array