我使用的是ramda-fantasy的monads。我在一个可能和一些函数中有一个字符串,它们将对字符串执行正则表达式匹配,并返回一个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) {...}我该怎么做呢?
发布于 2016-12-16 02:19:21
你正在寻找composeK,一元结构上的函数组合("kleisli箭头“)。
基本上,您的结果函数应该重复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)))https://stackoverflow.com/questions/41169939
复制相似问题