使用 Ramda 将函数列表应用于参数列表

Applying a list of functions to a list of arguments using Ramda

Ramda 中是否有一个函数可以将函数列表应用于参数列表,类似于 juxt() 但每个函数仅在参数列表中的相应索引处提供参数?类似于:

pipe(zip, map(([a, b]) => a(b)))([func1, func2], ['arg1', 'arg2']);

有更好的方法吗?

使用 R.zipWith 通过将函数应用于列表中每个位置相等的对,从提供的两个列表中创建一个新列表。

您也可以将回调替换为 R.call,它调用第一个参数,并将其余参数作为参数传递。

const { zipWith, call } = R;

const fn = zipWith(call);

const func1 = R.add(1);
const func2 = R.add(2);

const result = fn([func1, func2], [1, 2]);

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.27.1/ramda.min.js" integrity="sha512-rZHvUXcc1zWKsxm7rJ8lVQuIr1oOmm7cShlvpV0gWf0RvbcJN6x96al/Rp2L2BI4a4ZkT2/YfVe/8YvB2UHzQw==" crossorigin="anonymous"></script>