パーサ

関数型言語ではパーサを書き易いという話を聞いたことがあったと思う。そこで、簡単なWiki記法のようなもののパーサをGaucheで書いてみることにした。とりあえず、はてなダイアリの記法を参考に見出しと引用だけ解釈するものを作ってみたのだが、それだけで50行くらいになってしまった。
なんだかGaucheを使いこなせてない気がしたのでWiLiKiのパーサを見て参考にしようと思ったら、コードが抽象的すぎてよくわからなかった。抽象化にはやはり理論的背景についての理解が必要なのだろう。私程度がその場の思い付きで作ったものが汚くなるのは当然ではある。
しかし、Lisp系言語の開発スタイルとして「まず書く」というのはよく言われることではあるので、ある程度作ってからリファクタリングしようと考えている。似たようなところをまとめていけば結果的にそれなりに抽象化できるだろう、と楽観しておく。
所詮は趣味なのでのんびりやっていこう。
Document ID: 88c8846387ba00883f6804ff4a6f4ffa