/// I can't do this
let max = float n |> sqrt |> int64 |> Math.BigInt
/// But this is allowed
let max = Math.BigInt(float n |> sqrt |> int64)
答案 0 :(得分:3)
不带参数的类构造函数不能使用。你可以写
let max = float n |> sqrt |> int64 |> (fun x -> Math.BigInt(x))
如果你愿意,可以。 (不过,我不知道这种限制的原因。)
答案 1 :(得分:0)
在我的F#版本(Mono上的1.9.4.19)中,两个版本都失败了:
The member or object constructor 'BigInt' takes 0 argument(s) but is here given 1. The required signature is 'Math.BigInt()'.
我可以用
let max = float n |> sqrt |> int64 |> Math.BigInt.of_int64
获取bigint
或
let max = float n |> sqrt |> int64 |> Math.BigInt.FromInt64
获得Math.BigInt
。