HaskellのAlternative, MonadPlus, StateT, Logicを使ってパーサーコンビネータのようにツリー構造を処理するための初歩知識 この記事は何? これは、 logict :: Stackage Server とそれを組み合わせたパターンを使うための入門文書です。 具体的に行いたい処理としては、事前にある程度トークン分割などが処理されている、自然言語もしくはプログラミング言語などの人工言語の処理を想定しています。 ゼロから平坦なテキストをパースしていきたい場合は、 Megaparsec tutorial from IH book (翻訳) という名記事を読んだほうが良いと思いますし、そもそもこの記事を読んでもMegaparsecのチュートリアルは読むとためになるでしょう。 私の場合は、既に単語がトークン分けされていて、しかもそのトークンが単純なテキストじゃなく