あれからだいぶ直してしまったので1から説明します。YT版Parser Combinator for OCaml……どう見てもHaskellやCleanのそれの劣化版ですが。 ええと、まず、今更言うまでもないですがパーサコンビネータというのはパースする関数とパースする関数をくっつける関数のことです。できるものは単なるトップダウンの再帰下降なLLパーサです。状態遷移表を使うパーサのほうが全てにおいて優秀ですが、状態遷移表を使うパーサはプリプロセッサになっていて使い勝手が大変悪いのが普通です。パーサコンビネータはプリプロセッサをかます必要がないため、とくに@や&や'Accessを付けずに関数名だけで関数を値として使える言語では、手書きパーサの面倒な定型句を省くのに便利です。ソースの見た目を短くするためだけにクロージャ・カリー化を連発しますのでコンパイル後は典型的な「10%のコードを実行するために
![2007-12-04](https://cdn-ak-scissors.b.st-hatena.com/image/square/06a15c64ba0ceec233d86d71001ebb29a9dcbf5d/height=288;version=1;width=512/https%3A%2F%2Fcdn.blog.st-hatena.com%2Fimages%2Ftheme%2Fog-image-1500.png)