これは、スタック オーバーフローの問題について尋ねられたときに人々が抱えている問題の逆であることはわかっていますが、関数を作成して次のように呼び出すと、エラーが発生することはなく、アプリケーションは私のコアをすりつぶすだけです。 CPU を強制終了するまで:
let rec recursionTest x =
recursionTest x
recursionTest 1
もちろん、これを変更できるので、実際には次のようになります。
let rec recursionTest (x: uint64) =
recursionTest (x + 1UL)
recursionTest 0UL
このようにして、コードにブレークポイントを設定し、x の値が急速に上昇するのを見ることができますが、それでも問題はありません。F# は無限再帰を気にしませんか?