末尾再帰

今のところインタプリタだから一応作れそうなんだけど効率悪そう。もっとお手軽に末尾式であることを判定できないのかねぇ。今の予定ではとりあえず関数を呼び出すたびに関数の末尾だったかどうかを判定することになってる…

今、式の評価をスタック使ったループで書いてあるんだけど、ちょっとシンプルじゃなくて分かりにくい。考えながらだらだら作ると大抵形の悪いプログラムになる。
それとは関係ないのだけど、再帰呼び出しをループに直すと式全体が順番に評価されているところを眺めやすくてちょっと面白い。