R6RS:翻訳:R6RS:5.11 Proper tail recursion

R6RS:翻訳:R6RS:5.11 Proper tail recursion

5.11 真正末尾再帰

Scheme の実装系は真正末尾再帰的でなければならない。末尾文脈と呼ばれるある特定の構文文脈に現れる手続き呼び出しが末尾呼び出しである。回数無制限の活性な末尾呼び出しをサポートする場合、その Scheme 実装系は真正末尾再帰的である。呼び出しが活性であるというのは、呼び出された手続きが戻る可能性がある場合を言う。これには、普通に手続きから戻る場合と同様に call-with-current-continuation を使って前以って補足しておき、後になってそれを起動して返る場合も含まれることに注意。継続の補足がない場合、呼び出しは高々一回しか返らず、活性な呼び出しとはまだ返っていない呼び出しのことである。真正末尾再帰の形式的な定義は Clinger の論文 [5] にある。 (rnrs base (6)) の構成要素における末尾呼び出しの識別法はR6RS:翻訳:R6RS:11.20 Tail calls and tail contextsに述べられている。


Last modified : 2008/11/08 02:39:18 UTC