5
我最近絆倒通用Control.Applicative.optional
組合子:非解析器例如,對於`Control.Applicative.optional`
optional :: Alternative f => f a -> f (Maybe a)
optional v = Just <$> v <|> pure Nothing
,但我不太爲組合子實際使用;例如當應用於純仿函數如列表或Maybe
,結果似乎並不十分有用:
> optional [1,2,3]
[Just 1,Just 2,Just 3,Nothing]
> optional Nothing
Just Nothing
> optional (Just 1)
Just (Just 1)
...會是什麼optional
更合理的應用程序?
那麼,解析器會彈出想法:) – 2012-02-29 14:15:54
最近有關Cafe的一些討論很多,關於'some'和'many'與'optional'有相同的用例,即解析器和「可能失敗的東西」。 .. http://www.haskell.org/pipermail/haskell-cafe/2011-December/097476.html – 2012-02-29 14:36:37