1

私は 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で作業していたときに、間違ったバージョンを保存しました。

4

1 に答える 1

3

facは 2 つの数値を想定しているため、 がある場合fac x、それは数値ではないため、数値で割り切れません。

于 2012-07-01T15:20:12.850 に答える