我希望能找到一个惯用的方法来做这件事。目前它可以工作,但似乎我必须重新发明标准库中已有的东西。正确的方法是什么?
我正在尝试传递一个函数列表并按顺序绑定它们。以下是一个简单的例子:
我正在尝试传递一个函数列表并按顺序绑定它们。以下是一个简单的例子:
bindSeq :: (Monad m) => m a -> [(a -> m a)] -> m a
bindSeq m [] = m
bindSeq m (x:xs) = bindSeq ( m >>= x ) xs
bindSeq (Just 4) [ Just . (+1), Just . (+2)]
Just 7
bindSeq = foldl' (>>=)
是什么意思? - Fixnum