我查看了Haskell库中的Applicative
类,偶然发现了Alternative
。
这个班有什么用?谷歌搜索并没有发现任何特别有见地的东西。它似乎完全不合适,与应用程序包捆绑在一起。
有人可以发布一个可能的场景,你会使用这个类吗?
它通常与解析器组合子一起使用。例如,如果space
是匹配单个空白字符的解析器组合子,那么many space
将是匹配连续空白字符的组合子。
不过,我同意它在Control.Applicative
中有点不合时宜。
有时<|>
运算符非常有用:
foldl1 (<|>) [Nothing, Just 5, Just 3]
-- Just 5