Next: Up: Previous:

メソッドを定義する

 

メソッドは defmethod によって定義される. 例えば, 次のコードは点と基点の距離を返すメソッドを定義している.

(defmethod point distance ()
  (sqrt (+ (* x x) (* y y)))).
多くの並列オブジェクト指向言語のように, メソッドのボディは 受信オブジェクトのインスタンス変数を読むことができる. ABCL/f では, 受信オブジェクトはメソッドの最初の引数である (上の例では self). メソッドの起動は通常の関数の起動と 正確に同じ文法を持っている. 例えば, distance メソッドは 次のように呼ばれる.
(distance p)
ここで ppoint のインスタンス(もしくはその サブクラスのインスタンス)である.

ABCL/f は非同期にメソッドを起動する future コンストラク ト [11] もサポートしている. これは次のように書かれる.

(future (distance p)).


Mitsubishi Research Institute,Inc.
Mon Feb 24 19:24:01 JST 1997