luna について教えて下さい (OO & luna 初心者)
Daiki Ueno
ueno @ unixuser.org
2002年 4月 15日 (月) 19:09:16 JST
;; ほとんどちゃちゃですが、
>>>>> In [emacs-mime-ja : No.01004]
>>>>> tomo @ kanji.zinbun.kyoto-u.ac.jp (守岡 知彦 / MORIOKA Tomohiko) wrote:
守岡さん> CLOS だと多分 method がどれかの class の持ち物であるということ
守岡さん> にはなってないと思うので、そもそも下位 class の持ち物である暗
守岡さん> 黙の method として扱われていることが問題であるような気がします。
守岡さん> ちょっと手元に CLOS 処理系を用意してないので、どなたか CLOS 処
守岡さん> 理系で同様の例を実験していただけないでしょうか?
Debian の clisp で実験したところ、中島さんの期待されたように以下の結果に
なりました。
-------------- next part --------------
[1]> (defclass grandpa () ())
#<STANDARD-CLASS GRANDPA>
[2]> (defclass dad (grandpa) ())
#<STANDARD-CLASS DAD>
[3]> (defclass me (dad) ())
#<STANDARD-CLASS ME>
[4]> (defgeneric clos-test (person))
#<GENERIC-FUNCTION CLOS-TEST>
[5]> (defmethod clos-test ((gp grandpa))
(setq x (+ 1 x)))
#<STANDARD-METHOD (#<STANDARD-CLASS GRANDPA>)>
[6]> (defmethod clos-test :around ((dd dad))
(call-next-method)
(setq y (1+ y)))
#<STANDARD-METHOD :AROUND (#<STANDARD-CLASS DAD>)>
[7]> (setq x 0 y 0)
0
[8]> (setq grandpa (make-instance 'grandpa))
#<GRANDPA #x20382A79>
[9]> (setq dad (make-instance 'dad))
#<DAD #x2038562D>
[10]> (setq me (make-instance 'me))
#<ME #x20388229>
[11]> (clos-test me)
1
[12]> x
1
[13]> y
1
-------------- next part --------------
;; 随分昔に clisp-doc の CLOS-guide.txt.gz のサンプルコードだけを差し替
;; えて LUNA-guide.txt.gz を書こうとしていたのを思い出しました。^^;;
--
Daiki Ueno
More information about the Emacs-mime-ja
mailing list