Применить список функций к значению может быть в Javascript

Я использую ramda-fantasy для монад. У меня есть строка внутри может быть и некоторые функции, которые будут выполнять регулярные выражения в строке и возвращать Maybe String,

Как я могу сопоставить, возможно, применить все функции и объединить результат?

я имею

const fieldRetrievers = [ 
  getAddress,
  getName,
  getPhone, 
]

const text = Maybe.of("a text")

// I want to define
// List (String -> Maybe String) -> Maybe String -> Maybe String
function getInfo(retrievers, maybeText) {...}

Как я могу это сделать?

1 ответ

Ты ищешь composeK Композиция функций над монадными структурами ("стрелки Клейсли").

В основном ваша результирующая функция должна повторяться chain на вход:

text.chain(getAddress).chain(getName).chain(getPhone)

который вы могли бы реализовать с помощью reduce по вашему массиву функций:

R.reduce((m, f) => m.chain(f), text, fieldRetrievers)

так что вы бы написали

const getInfo = R.flip(R.reduce(R.flip(R.chain)))
Другие вопросы по тегам