7.6.6.1.3. ソートされた適用可能なメソッドのMethod-Combination実行

UP


7.6.6.1.3. ソートされた適用可能なメソッドのMethod-Combination実行

単純な場合として、method-combinationはstandardが使われており、 全ての適用可能なメソッドはプライマリメソッドであるとします。 この場合は、有効メソッドは最も特定的なメソッドとなります。 メソッドは、次に特定的なメソッドを関数call-next-methodの使用にて呼び出すことができます。 call-next-methodによって呼び出されるメソッドは、次のメソッドと言います。 関数next-method-pは、次のメソッドが存在するかどうかをテストします。 もしcall-next-methodが呼ばれたものの、次の特定的なメソッドが存在しなかった場合は、 ジェネリック関数no-next-methodが呼び出されます。

一般的に、有効なメソッドは、適用可能なメソッドを組み合わせた結果のいくつかとなります。 これは次に記載されたような目的によりフォームとして定義されます。 適用可能なメソッドは、いくつかが呼ばれるか、あるいは全部が呼ばれるかを定義します。 また、返却値は1つか複数が返却されるように定義します。 その返却値はジェネリック関数として返却されるものです。 付加的にはいくつかのメソッドがcall-next-methodを用いてアクセス可能になるように定義します。

有効なメソッドにおける各メソッドの役割は、 メソッドの修飾子と特定子によって決定されます。 修飾子はメソッドに印をつけるものであり、 修飾子の意味は手続きにおいて印を用いることで決定されます。 もし適用可能なメソッドが認識できない修飾子を持っていた場合はエラーを発し、 有効なメソッドの中にこのメソッドが存在しないものとします。

method-combinationのstandardが限定されたメソッドと一緒に使われたときは、 有効なメソッドは7.6.6.2. Standard Method-Combinationに記載されたものとして生成されます。

他のタイプのmethod-combinationは、defgenericかあるいは別のオペレーターで ジェネリック関数のオプション:method-combinationを使うことで使用できます。 この方法により、手順をカスタマイズできます。

新しいタイプのmethod-combinationは、 define-method-combinationマクロを使うことによって定義することができます。


TOP, Github