質問: Fortranでプログラミングをしています。 サブルーチンを再帰的に呼び出すために頭に「recursive」を付けることを覚えましたが、 再帰的に呼び出すか否かにかかわらず、すべてのサブルーチンに「recursive」を付けておけば 楽かなと思いました。 全ての関数やサブルーチンに「recursive」を付けることにデメリットはあるのでしょうか?
回答: recursiveな関数は、再帰実行が有限回数で終わるように書かなければなりません。そうしないと無限ループとなって結果が得られません。 recursiveではない関数では、このような配慮は不要です。 全ての関数にrecursiveをつけると、無限ループ状態が発生した時に全ての関数についてコードの見直しをする必要が出てきますので、プログラムのデバッグや管理に余分な手間がかかる等の問題が生じます。