テールの話

といってもポニーテールでもツーテールでもツインテールでもない

ベーマガ話があったところで、人工知能は時蠅の夢を見るか - 末尾再帰を見てふと、自分の場合 BASIC ベースで末尾呼び出し(テールコール)の最適化を把握したことを思い出したので書いてみる
こんなパターンがあった場合、

・・・
GOSUB *HOGE
RETURN

こうしてしまえば

・・・
GOTO *HOGE

いい、という、実の所ローカル変数も返り値もないので話が単純なだけ
C コンパイラが吐くコードでこれをやろうと思うと、フレームの構造が違う別の関数の中にジャンプするのは、ふつう難しいので、テイルリカージョンをループにするところまで(LSI C-86 だとレジスタ引数なのでうまくするとアセンブラで書いたかのようなコードが出ることもあった)
R5RS がリファレンスに挙げている Proper Tail Recursion and Space Efficiency を読むのがいいんじゃないかと思いますが自分も実はしっかりとは読んでない