【发布时间】:2011-08-02 03:36:11
【问题描述】:
假设我有许多功能:
f :: a -> Maybe a
g :: a -> Maybe a
h :: a -> Maybe a
我想用以下方式组合它们:如果 f 返回 Nothing,则计算 g。如果 g 返回 Nothing,则计算 h。如果其中任何一个计算 Just a,则停止该链。整个作文 (h . g . f) 当然应该返回 Maybe a。
这与 Maybe monad 的典型用法相反,如果没有返回,通常你会停止计算。
像这样链接计算的 Haskell 习惯用法是什么?
【问题讨论】: