以前 http://rb.blog.pasberth.com/post/29117396682/haskell-parsec こういう記事を書いた。 左再帰というのは、構文解析で、 + の演算子が a + b + c が ((a + b) + c) のように解析されるとき、こんな感じに実装する事: つまり expr 関数の先頭で expr 関数を呼んで再帰するような解析。 Haskell の Parsec の場合、このような構造にすると無限に再帰して、プログラムが終了しなくなってしまう。 それを回避するには、この左再帰を除去するしかない。 参考: http://d.hatena.ne.jp/tanakh/20040731 http://d.hatena.ne.jp/kazu-yamamoto/20110127/1296098875 http://ja.wikipedia.org/wiki/