我有 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 中工作时,我刚刚保存了错误的版本。