[xyzzy:03587] sub-class でなければ sub-closure というんでしょうか、
- Subject: [xyzzy:03587] sub-class でなければ sub-closure というんでしょうか、
- From: HANAI Tohru <hanai@xxxxxxxxxxxxxxxxxxxx>
- X-mailer: Mozilla 4.7 [en] (Win95; I)
こんにちは。花井です。
新規パッケージ内で、lisp パッケージで既に用意された関数の
別バージョンを作ろうとしています。
# lisp パッケージの定義はそのままで、別パッケージ内に同名
# 関数を定義します。
で、
(shadow 'make-vector)
(defun make-vector (LENGTH INIT)
(lisp::make-vector LENGTH :initial-element INIT))
とすることでなんとか目的を果せるようにはなったのですが、
いちいち (shadow ..)とやるよりは、ということで簡単なマク
ロを作ってみました。が、どーも結果が芳しくないのです。(--;
(defpackage "test")
(in-package "test")
(defmacro shadowing-defun (name (&rest lambda-list) &body body)
`(shadow ',name)
`(defun ,name ,lambda-list ,@body))
(shadowing-defun make-vector (LENGTH INIT)
(lisp::make-vector LENGTH :initial-element INIT))
これで (eval-buffer) をすると、あろうことか lisp パッケー
ジの定義を上書きしまいます。
どこらへんがおかしいのでしょう?
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
@客先 (hanai@xxxxxxxxxxxxxxxxxxxx)
@自宅 (honey@xxxxxxxxx)
花井 達
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-