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