uim.el

何か Emacs が日本語入力受け付けないなーと思ってたら uim.el 突っ込むだけ突っ込んで、時間が無かったからちゃんと設定してなかったんでした。

.emacs に指示通りの事を書くが動かない。/usr/share/emacs/site-lisp/uim-el にファイルが入ってるけど、load-path に含まれてない。autoconf ってデフォで load-path 通ってるようなところ探してくれないの? (´・ω・`)
;; 探しようがないか

load-path 追加すると動いた。うん? direct-mode で起動するのか…これはちょっと不満。もう一度 \C-\; (に bind してる) を押すと、おお入力でける。快適快適。

と思ったら direct mode では一文字ごとに undo リストが更新されている。つまり、"abcdefg" と打って一回 \C-/ すると "abcdef" になる。redo.el 入れてるのと関係あるんだろうか。あと uim-mode を切るキーが ~/.uim に書いてる generic-off-key にならない。

直したいけど elisp 嫌いなんだよなー。しかも最後のは Scheme とブリッジしなきゃいけないかも。まぁ後で気が向いたらやってみよう。

Syntax が apply できない理由

やっと Shiro さんが言ってたことが正確に理解できたかもしれない。

自分が何回評価されたか数える symbol を作って apply するとこういうバグが見つかる:

(define ec 'ec-1)
(define ec-1 'ec-2)
(define ec-2 'ec-3)

(apply + '(ec))
=> Error: got ec-2 (正しくは "got ec")

"+" の実装が間違っている。これは本来 procedure の + を syntax として実装している弊害だと思う。

続きを読む

いやらしいテストケース

太田さんが欲しがってたのはこういうのだろうか。define-syntax と call/cc があるから、ちょっと弄らんと SigScheme では使えんっぽいけど。

追記: あー、だめだこりゃ。call/cc と syntax 使ってないテストがほとんど無いし、SigScheme でも使えるやつは同じようなのが既にある。