6.9. kink/DYN

6.9.1. dyn型

dynはコールスタック上にプッシュ、ポップされる値のタグである。

「dyn」という名前は「dynamic scope」から来ている。これはdynが、いくつかのLisp方言における動的スコープ変数のようにふるまうからだ。

dynは実行時文脈を持ち回るのに使える。たとえば、トランザクションを持ち回れる。次の例を見よ:

6.9.1.1. Dyn.with(Val $thunk)

withはValを、Dynにひもづけてコールスタックにプッシュして、$thunkを引数なしで呼び出す。$thunkの呼び出しが終わると、Valはコールスタックからポップされる。

事前条件

$thunkはサンクでなければならない。

6.9.1.2. Dyn.all

allはDynにひもづけられた値をvecとして戻す。要素は、コールスタックの底からトップへと並べられる。

例

6.9.1.3. Dyn.top

topはDynにひもづけられた値のうち、コールスタック上で最もtopに近い値を戻す。

事前条件

少なくともひとつの値がコールスタック上でDynにひもづけられていなければならない。

例

6.9.1.4. Dyn.any?

any?は、コールスタック上で、Dynに何らかの値がひもづけられているかどうかを戻す。

例

6.9.2. DYN.new

newは新しいdynを戻す。

6.9.3. DYN.is?(Val)

is?はValがdynであるかどうかを戻す。