関係あるっぽい記述を見つけたのでメモ。
SPECIAL-OPERATOR-P - CLHSNotes:
Historically, this function was called special-form-p. The name was finally declared a misnomer and changed, since it returned true for special operators, not special forms.
注意: (適当訳) 古くから、この関数は special-form-p と呼ばれていた。 この関数はスペシャル・フォーム(リスト)でなく、スペシャル・オペレータ(シンボル)が与えられる場合に真を返すことから、この名前は最終的に誤った名前であると認められ改定された。
仕様を決めていた中の人も勘違いしていたようで。
しかしなぜ勘違いしたのか、なぜ長い間改定がなかったのかは、気になる。 CLtL2 には special-form-p しかないなあ。ANSI-CL で変更されたのかな。
ちなみに xyzzy でも special-form-p しかないのでサクッと定義。 もちろん LISP パッケージの中ですよ、奥さん。
(in-package :lisp)
(export '(special-operator-p))
(defun special-operator-p (symbol)
"Returns true if symbol is a special operator,
otherwise, returns false."
(special-form-p symbol))
このコメントはブログの管理者によって削除されました。
返信削除