酔眼漂流読書日記

本と音楽と酒場と言葉

The Little Schemer

名著 "The Little Lisper" を書いた Friedman による Scheme の本。ステップバイステップで学習するスタイルは、昔東大の森口先生が書いていた "Fortran" という教科書を彷彿させる。
思うところがあって少々 Scheme について調べているのだが、楽しめそうな本だ。
Scheme の処理系についても同時に調べているのだが、手軽に使うには GNU の Guile か Kawai Shiro 氏 の Gauche という処理系がよさそうである。どちらも他の言語に埋め込んで使うためのものとしても考えられている。
特に後者は開発者が日本人であることも手伝ってマルチバイトの扱いが最初からきちんと考慮されているので、使い勝手が良い。
Guile も Gauche も識別子に日本語を使うことができるため(そうしたいかどうかはともかく)


(定義 回文か? は
(λ (文字列)
(順次局所定義 ( (文字リスト は (文字列→リスト 文字列))
(逆文字リスト は (逆リスト 文字リスト)))
(equal? 逆文字リスト 文字リスト))))
といったプログラムを書くことができる。
しかしながら
(回文か? "たけやぶやけた")
を実行してみるとGauche は true, Guile は false を返してくる。
これは Guile では文字列を日本語としては認識していないのに対して、Gauche では文字列のエンコードを意識して(ディフォルトは EUC_JP) 文字列を解析してくれるためである。もちろん Guile を使って同じようなことをすることもできるだろうが、自分で拡張するには少し手間がかかりそうである。
ならば Gauche かといいたいトコロだが、Guile には Hobbit というコンパイラがついてきて、結構使えそうである。この辺が悩ましい限りだ。