2005/12/27

体調(≒モチベーション)がようやく戻ってきた。体調(≒モチベーション)がもっとも悪影響するのは、人間のタスクスイッチだろう。少しくらい体調(≒モチベーション)が低下していても、ルーチン仕事はできますよ、でも、次々と要求とリソースが変化するような仕事の能率は極端に落ちる。

ところで、仕事で使っている簡単なテキストフィルタを Gauche で書き直し始めた(もとは、ほとんど Ruby 製)。こっちのほうが、メンテナンスのコスト(主にモチベーションの維持にかかるコスト)が低そうだから。
あと、ポートやモジュールやマクロのような、どちらかというと非SICPちっくな技術に対する練習も織り交ぜてみるのがねらい。マクロって、こんな場面でこんなふうに使うもの?
(define-syntax tag-case
(syntax-rules (else)
((_ e0 (else e2 e3 ...)) (begin e2 e3 ...))
((_ e0 (e1 e2 e3 ...)) (if (equal? e0 e1) (begin e2 e3 ...)))
((_ e0 (e1 e2 e3 ...) c1 c2 ...)
(if (equal? e0 e1) (begin e2 e3 ...) (tag-case e0 c1 c2 ...)))))

(define (tagged-line-filter tagged-line)
(let ((tag (car tagged-line))
(str (cadr tagged-line)))
(tag-case tag
('column (column-filter str))
('verbatim (verbatim-filter str))
('table (table-filter str))
('numbered (numbered-filter str))
('itemized (itemized-filter str))
('enumerate (enumerate-filter str))
(else (default-filter str)))))

ディヴィグ本だけだと、実用する、という側面がぴんとこない。やっぱり On Lisp か。はやく本にならないかなあ。


時間ないなあ。

0 件のコメント:

コメントを投稿