1

我有 VS 11 beta 并且以下代码可以正常工作:

let rec fac x y =
    if x = y then y
    elif x % y = 0I then fac (x / y) y
    else fac x / (y + 1I)

现在我安装了 VS 2012 RC,我收到以下错误:

The type 'System.Numerics.BigInteger -> System.Numerics.BigInteger' is not compatible with the type 'System.Numerics.BigInteger'

代码不正确还是 F# 交互不正确?这是 F# 3.0。

编辑

实际上问题不在 F# 中,而是在我的代码中,应该是:

else fac x (y + 1I)

当我在 VS 11 中工作时,我刚刚保存了错误的版本。

4

1 回答 1

3

fac需要两个数字,所以当你有 时fac x,它不是一个数字,因此不能被一个数字除。

于 2012-07-01T15:20:12.850 回答