Next: 15.7 例
Up: 15 CLOSのクラスシステムの実現
Previous: 15.5 メソッドの探索
Sendはインスタンスに対してメッセージを送るものです.
インスタンスはクロージャですから,そのクロージャに
与えるべき引数を用意してfuncallすることになります.
(defmacro send (inst mess &rest args)
`(funcall ,inst ,inst ,mess ,@args))
(defmacro <- (mess &rest args)
`(funcall self self ,mess ,@args))
(defmacro slot-value* (inst mess &rest args)
`(funcall ,inst ,inst ,mess ,@args))
以上のようにクロージャによりオブジェクト指向のオブジェクトを
表現することが可能になっています.
また,self変数はそのメッセージが最初に送られたオブジェクトを指します.
それは,このクロージャの第一引数がselfという名前に
なっていることで実現できています.
generated through LaTeX2HTML. M.Inaba 平成18年5月6日