gauche.hook
- フック ¶フックオブジェクトを提供します。これは、特定のタイミングで 呼び出されるクロージャのリストを管理するものです。
フックのAPIはGuileのそれと上方互換で、下記のように拡張されています。
run-hook
を使う必要は
ありません。
delete-hook!
と呼ばれます。
Guileとの互換性のために、remove-hook!
がdelete-hook!
の
エイリアスとして定義されています。
ポータブルなコードを書いているなら、SRFI-173が基本的なフック機能を
提供しています (srfi.173
- フック(srfi)参照)。
{gauche.hook
}
フックのクラスで、一度に呼び出される手続きのリストを保持しています。
<hook>
クラスにはobject-apply
メソッドが定義されているので、
あたかもそれが手続きであるかのようにフックオブジェクトを“適用”できます。
フックオブジェクトを適用すると、登録されている全ての手続きが呼び出されます。
{gauche.hook
}
与えられたアリティ(正の整数でなければなりません)とともに新しい
フックオブジェクトを作成します。
{gauche.hook
}
objがフックオブジェクトであれば、真を返します。
{gauche.hook
}
hookの手続きリストが空なら、真を返します。
{gauche.hook
}
手続きprocをhookに追加します。
append?が与えられ真であれば、procはリストの最後に
追加されます。そうでなければ、procはリストの最初に追加
されます。
procは、make-hook
時に与えられたアリティとともに
呼ばれなければなりません。
{gauche.hook
}
hookの手続きリストからprocを削除します。
Guileとの互換性のためだけに、remove-hook!
がdelete-hook!
の
エイリアスとなっています。
{gauche.hook
}
hookの手続きリストを空にします。
{gauche.hook
}
hookの手続きリストのコピーを返します。
{gauche.hook
}
hookの手続きを、arg …を引数として順番に呼び出します。
引数の数は、make-hook
時に与えられたアリティにマッチしなければ
なりません。