【发布时间】:2018-08-15 08:42:08
【问题描述】:
假设我有一堆 arity 2 的函数:f: a b -> x,g: c d -> y,
等到一元函数u: a -> a。我想做的是以这样的方式链接它们:
f(_, g(_, .... z(_, u(_))...)
在_ 占位符内,来自给定输入数组的连续值将被注入。我正在尝试使用Ramda 库来解决这个问题。
我遇到的另一个非常相似的问题是以相同的方式链接函数,但 _ 占位符填充了与执行此组合的相同值。
更具体:
// 1st problem
someComposition( f(v[0], g(v[1], ..... z(v[n-1], u(v[n]))...) )(v);
// 2nd problem
someComposition2( f(v, g(v, ..... z(v, u(v))...) )(v);
对于第二个问题,我能想到的最好的办法是,假设所有函数都是可治愈的,遵循一段代码(讨厌它,因为 (v) 重复):
compose(
z(v),
...
g(v),
f(v),
u
)(v);
我尝试使用compose、composeK、pipe、ap 解决它,但它们似乎都不适用于这种情况,或者我只是无法看到解决方案。欢迎任何帮助。
【问题讨论】:
标签: functional-programming ramda.js function-composition