29

我正在查看ApplicativeHaskell 库中的课程并偶然发现Alternative.

这门课有什么用?谷歌搜索没有发现任何特别有见地的东西。它似乎完全不合适,与 Applicative 包捆绑在一起。

有人可以发布一个可能的场景,你会使用这个类吗?

4

2 回答 2

22

它通常与解析器组合器一起使用。例如,如果space是一个匹配单个空白字符的解析器组合器,many space它将是一个匹配连续空白字符的组合器。

不过,我可以同意它在 中有点Control.Applicative不合适。

于 2011-08-26T11:50:03.447 回答
16

有时<|>操作符非常有用:

foldl1 (<|>) [Nothing, Just 5, Just 3]
-- Just 5
于 2011-08-26T11:52:12.093 回答