我知道这与人们在询问堆栈溢出问题时遇到的问题有些相反,但是如果我创建一个函数并按如下方式调用它,我永远不会收到任何错误,并且应用程序只会磨碎我的核心CPU,直到我强制退出它:
let rec recursionTest x =
recursionTest x
recursionTest 1
当然我可以改变它,所以它实际上是这样的:
let rec recursionTest (x: uint64) =
recursionTest (x + 1UL)
recursionTest 0UL
这样我可以偶尔在我的代码中放置一个断点,然后看到 x 的值上升得很快,但它仍然没有抱怨。F# 不介意无限递归吗?