テンプレートエンジン
構造化された HTML 出力をしようとしてるけど、僕が欲しかったのは Scheme 用の汎用な(erbやらphpのような)テンプレートエンジンなのかもしれないな。
<html> <head> <title><%#h= title %></title> </head> <body> <h1>hogehoge</h1> <% (for-each (lambda (comment) %> <p class="comment"> <span class="date"><%#h= (date-of comment) %></span> <span class="content"><%#h= (content-of comment) %></span> <a href="<%#= (anchor-of comment) %>">link</a> </p> <% ) (current-comments)) %> </body> </html>
とか?インデントがきもい。
Lisper はこんなことしないと言われそうだ……けど、試しに実装してみるのも良いかもしんない。
よく考えると正しい仕様がわからないな……。ネスト可能なコメント(#| ... |#)とか quote のこととか考えるとちゃんとやるには Scheme の read を拡張するか Scheme の read に相当する機能を実装しなければいけない気がする。リーダマクロを使えばできるのかな? Scheme にはリーダマクロは無いんだっけ?