common lisp の教本ばっかり読んでると、シンボルは内部的には大文字になってるんだよなと漠然と思ってた。
なので common な処理系ならなんでも (eq 'HOGE 'hoge ) は t になるんじゃないかと。
xyzzy では下のようになった。
;;; xyzzy
(eq 'hoge 'hoge)
;=> t
(eq 'HOGE 'hoge) ; おお? 違うのか。
;=> nil
(eq 'nil nil)
;=> t
(eq 'NIL nil) ; おおお?
;=> nil
NTEmacs-24 でやったら、xyzzy と同じになった。
ということは、xyzzy は emacs に合わせたんだな。きっと。
ちなみに clozure CL でやってみたら、上記はすべて T だった。
今頃こんなのを書いてること自体あほなんだが、emacs や xyzzy 用に書いたのを他の cl に持っていくときは要注意かもしれず。
0 コメント :
コメントを投稿