javascript – 将函数列表应用于Ramda中的值
作者:互联网
如何在Ramda中最好地创建此功能?
function get_list (value) {
return [
first_transform(value),
second_transform(value)
]
}
get_list(12)
我想这是map功能的反转.
解决方法:
你有几个选择.
假设您的功能已经在列表中:
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);
标签:ramda-js,javascript,functional-programming 来源: https://codeday.me/bug/20191005/1857664.html