前回において、「TeX マクロの再帰呼出が末尾再帰になる場合」の展開の様子について考察した。ここから、TeX での「末尾再帰」の定義を導くことができる―すなわち、TeX マクロの置換テキスト(展開した内容)の処理(プリミティブの実行や他のマクロの展開)において、最後に行われるものが当該マクロの展開である場合、それ(マクロの呼出)が「末尾再帰」である。 TeX の末尾再帰に関して注意すべきなのは、普通のプログラミング言語だと末尾再帰になりそうな形が TeX ではならないことがあるということである。 例えば、1 から指定の数まで順に整数を出力する*1という典型的な繰り返し処理を実装してみる。 % \countUpTo{<n>}: 1 から n までの整数を(改段落しながら)出力する \newcount\num \newcount\limitNum \def\countUpTo#1{% \num