我是haskell的初学者,正在阅读Learn you a haskell book。一段时间以来,我一直在尝试消化函子和应用函子。
在应用函子主题中,实例实现Maybe
为
instance Applicative Maybe where
pure = Just
Nothing <*> _ = Nothing
(Just f) <*> something = fmap f something
因此,据我了解,Nothing
如果左侧函子 (for <*>
) 为 Nothing,我们会得到。对我来说,这似乎更有意义
Nothing <*> something = something
所以这个应用函子没有效果。有什么用例,如果有的话Nothing
?
说,我有一个Maybe String
我不知道的价值。我必须把它Maybe
交给第三方功能,但希望它的结果先通过几个Maybe (a -> b)
。如果其中一些功能是Nothing
我希望他们默默地返回他们的输入,而不是给出 a Nothing
,这是数据丢失。
Nothing
那么,在上述实例中返回背后的想法是什么?