私は VS 11 ベータ版を使用していましたが、次のコードは問題なく動作していました。
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で作業していたときに、間違ったバージョンを保存しました。