将函数列表应用于Ramda中的值

时间:2015-12-28 04:59:14

标签: javascript functional-programming ramda.js

我如何在Ramda中最好地创建此功能?

remove

我想这是map函数的反函数。

1 个答案:

答案 0 :(得分:22)

你有一些选择。

假设您的功能已经在列表中:

transforms = [first_transform, second_transform];

第一个选项是使用R.juxt,通过创建一个将给定函数列表应用于新函数接收的值的新函数,它几乎完全符合您的要求。

get_list = R.juxt(transforms);

另一个选项是R.ap,它将函数列表应用于值列表。 R.of可用于将值包装在数组中。

get_list = R.compose(R.ap(transforms), R.of);

或者最后,R.map可用于接收列表中的每个函数,并返回将其应用于值的结果。

get_list = value => R.map(fn => fn(value), transforms);