For Development HEAD DRAFTSearch (procedure/syntax/module):

9.24 gauche.parameter - パラメータ(レガシー)

Module: gauche.parameter

このモジュールは後方互換性のためだけに提供されています。 このモジュールを使うことはできるだけ避けてください。

パラメータは組み込みになったので、パラメータの基本機能を使うだけなら このモジュールをuseする必要はありません。 ただ、組み込みのパラメータは従来のGaucheのパラメータと若干異なる動作をします。 このモジュールのパラメータは以前のものと互換なので、古いコードをそのまま 動かすことができます。

このモジュールをuseした場合、次の2つの識別子が互換性のあるものに再束縛されます。

make-parameter

これはmake-legacy-parameterの別名となります。

parameterize

これはparameterize/dynwindの別名となります。

新旧パラメータの違いについて詳しくは see パラメータと動的状態を参照してください。

旧パラメータはまた、オブザーバという、パラメータの値が変わる時に 呼ばれるコールバックを登録することができました。下のAPIはそのためのものです。

オブザーバは旧パラメータのみに付加できます。 この機能はいずれ取り除く予定なので、新規コードでは使わないようにしてください。

Function: parameter-observer-add! p proc :optional when where

{gauche.parameter} Deprecated. procをパラメータpの“オブザーバ”手続きに追加します。 オブザーバ手続きは、(1)パラメータに新しい値がセットされる直前、 あるいは(2)パラメータに新しい値がセットされた直後、に呼ばれます。 (1)の場合、コールバックが呼ばれる前にフィルタ手続きがすでに適用 されています。どちらの場合も、オブザーバ手続きは、古い値と新しい 値の2引数を伴って呼ばれます。オブザーバ手続きの戻り値は無視されます。

オプショナル引数whenは、シンボルbeforeafterの いずれかでなければならず、値が変更された前と後のどちらでprocが 呼ばれるかを指定します。省略されると、afterを指定したものと されます。

オプショナル引数whereは、シンボルappendprependの いずれかでなければならず、procが既存のオブザーバ手続きのリストの 前に追加されるか後に追加されるかを指定します。省略されると、append を指定したものとされます。

注意: パラメータの値自身がスレッドローカルであっても、 オブザーバのリストは全てのスレッドで共有されます。

Function: parameter-observer-delete! p proc :optional when

{gauche.parameter} Deprecated. パラメータpのオブザーバ手続きのリストからprocを削除します。 procがリストになければ、何も起こりません。 when引数にシンボルbeforeafterを与えて、 procをどちらのリストから削除するかを指定することができます。 when引数が省略されると、procは両方のリストから削除されます。

Function: parameter-pre-observers p
Function: parameter-post-observers p

{gauche.parameter} Deprecated. “before”か“after”オブザーバをそれぞれキープするフックオブジェクト (gauche.hook - フック参照)を返します。

注意: パラメータの値自身がスレッドローカルであっても、 オブザーバのリストは全てのスレッドで共有されます。



For Development HEAD DRAFTSearch (procedure/syntax/module):
DRAFT