29

Haskellライブラリ内のクラスを見ていてApplicative、偶然見つけまし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 に答える