我在看 Applicative
类,并偶然发现了Haskell库中的 Alternative
.
这个班有什么用?在谷歌上搜索了一下,并没有发现什么特别有见地的东西。而且它似乎完全不合适,因为它是与Applicative包捆绑在一起的。
谁能贴出一个可能使用这个类的场景?
它通常与解析器组合器一起使用。例如,如果 space
是一个匹配单个空格字符的解析器组合器。many space
将是一个能匹配连续空格的。
我可以同意,它是有点不合适的地方在 Control.Applicative
不过。
有时 <|>
操作员是相当有用的。
foldl1 (<|>) [Nothing, Just 5, Just 3]
-- Just 5