我正在学习f#,但遇到了一个琐碎的小问题,似乎没有道理。我正在研究Euler项目问题​​2,并且已经知道了这一点:

let fib (x : BigInteger) (y : BigInteger) (max : BigInteger) =
    let added = x + y
    if added > max then y
    else fib y (x + y) max

我在递归fib调用中遇到了错误:



我不确定为什么。有什么帮助吗?

最佳答案

因为fib是递归函数,所以它必须以let rec开头。

关于f# - 值或构造函数未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9643092/

10-13 05:05