Next: , Previous: Around-Advice, Up: Advising Functions


16.4 計算アドバイス

マクロdefadvicedefunに似ていて、 アドバイスのコードやアドバイスに関する他のすべての情報を ソースコードで明示します。 関数ad-add-adviceを用いると、 その詳細を計算で求めたアドバイスを作成できます。

— Function: ad-add-advice function advice class position

ad-add-adviceを呼び出すと、 関数functionに対するクラスclassのアドバイス断片として adviceを追加する。 引数adviceはつぎの形式である。

          (name protected enabled definition)

ここで、protectedenabledはフラグであり、 definitionはアドバイスの動作を指定する式である。 enablednilであると、 このアドバイス断片は当初は無効になる (see Enabling Advice)。

functionに指定したクラスclassのアドバイス断片がすでにあると、 positionは新しいアドバイス断片をリストのどこに置くかを指定する。 positionの値は、firstlast、あるいは、 (リストの先頭を0から数えた)数である。 範囲外の数は先頭か末尾のどちらか近いほうになる。

functionに同じ名前のアドバイス断片adviceがすでにあると、 引数positionは無視され、古いアドバイス断片を新しいもので置き換える。