再帰ってすごい

思い付きでちょっと腐った言語(その名はT-SQL)の上にS式言語パーサ(目標Scheme R5RS)を載せてみてるんだが、

 

T-SQLはストアドetcのネストが32回までです。

繰り返します。

T-SQLはストアドetcのネストが32回までです。

この中でREP(Lは無い)しろと。 

つまりT-SQL上の再帰禁止。2000行ほど書いてからこの事実に直面した。

再帰クエリ書けばいいんだけど俺にそんな知能は無い。

 

で、理論上は行けるんで書いてみてたんだけど、例えばとある癖のない関数で、深呼吸して一気に再帰なしを書けた(そしてバグが一個出た)場合に、

  • 再帰あり:32行
  • 再帰なし:179行(かなりコメント行もあるが、これ削除したら後日死ぬ)

となった。

 

再帰すげぇ。先人に感謝。