Apply a list of functions to a value in Ramda

不想你离开。 提交于 2020-01-10 18:42:06

问题


How would I best create this function in Ramda?

function get_list (value) {
  return [
    first_transform(value),
    second_transform(value)
  ]
}

get_list(12)

I guess this is the inverse of the map function.


回答1:


You've got a few options for this.

Assuming your functions are already in a list:

transforms = [first_transform, second_transform];

The first option is to use R.juxt, which does pretty much exactly what you're after by creating a new function that applies the list of given functions to the values received by the new function.

get_list = R.juxt(transforms);

Another option is R.ap, which applies a list of functions to a list of values. R.of can be used to wrap the value in an array.

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

Or lastly, R.map could be used to receive each function in the list and return the result of applying it to the value.

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


来源:https://stackoverflow.com/questions/34487898/apply-a-list-of-functions-to-a-value-in-ramda

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!