假设我有一个 int -> int 类型的递归函数 f(x)。预计 x 越大,f(x) 将执行的递归调用越多。
给定一个递增顺序的无限整数序列,我对序列中的第一个整数感兴趣,当在其上使用 f 时会导致 StackOverflowException 。
我怎样才能做到这一点?
到目前为止,我已经尝试制作一个简单的函数来测试在给定整数上使用给定函数时是否抛出了 StackOverflowException。它看起来像这样:
let overflows f x =
try
ignore (f x) in false
with
| :? System.StackOverflowException -> true
但是,它似乎在抛出 StackOverflowException 时无法捕获它,即使这是本意。
有什么建议么?