日曜プログラミング

休日趣味でやってるプログラミング関連記事をダラダラと

末尾再帰とループ

正直好みの問題な気もするが自分が思う所の利点。

  • 末尾再帰
    • ループ変数不要と言うか再帰関数の引数化して関連付けが明確になる
    • 関数として定義し易い*1
    • 良く良く見れば再帰関数呼び出しは goto のラベルと同じだったり

この辺りに利点を感じられないなら別にループでもいいのかなと思わなくもない。

自分は再帰可能な部分は再帰にしたい。もちろんスタック消費しなければの前提だが。
ループもループ変数がループ構文と離れてなけりゃまあ構わない。

余談だが VBA が嫌な理由の一つに Option Explicit とループ変数の相性が悪いという所に
これ書いてて気づいた。VB.net ではどうなってるのか知らんけども。

*1:別にループ構文が関数化できないと言う話でなく