R6RS:翻訳:R6RS:5.12 Dynamic extent and the dynamic environment

R6RS:翻訳:R6RS:5.12 Dynamic extent and the dynamic environment

5.12 動的存続期間と動的環境

手続き呼び出しについて、それが開始して返るまでの間を動的存続期間と言う。 Scheme では call-with-current-continuation (R6RS:翻訳:R6RS:11.15 Control features)によって手続き呼び出しから返ったあとに動的存続期間に再入することができる。したがって、ある呼び出しの動的存続期間は単一の、連続した時間感覚ではないこともある。

本報告書で述べている操作のいくつかは、それに対する目に見える引き数に加えて動的環境からも情報を得ている。 call-with-curren-continuation が dynamic-wind (R6RS:翻訳:R6RS:11.15 Control features)による暗黙の文脈にアクセスしていたり、 raise 手続き(R6RS:翻訳:Standard Libraries:7.1 Exceptions)が現在の例外ハンドラにアクセスしたりしている。動的環境を変更する操作は dynamic-wind や with-exception-handler のような手続きの動的存続期間の間、非常に動的に行われる。そのような呼び出しから返ると、以前の動的環境が回復される。動的環境は呼び出しの動的存続期間の一部と考えることもできる。そのため、 call-with-current-continuation を使って捕捉され、それによって作られた脱出手続きを起動することによって回復する。


Last modified : 2008/11/08 02:42:43 UTC