Kir*_*rst 3 parameters f# types type-inference
我正在编写一个F#函数,将一个数字分解为素数因子.
let factors primes i =
let mutable j = i
for p in primes do
while (j>1) && (j%p=0) do
j <- j/p
printfn "prime: %i" p
Run Code Online (Sandbox Code Playgroud)
它适用于int值i,但不适用于int64值.该参数primes是一组int值.
我明白为什么会这样 - 类型推断假设函数只接受int参数 - 但我想明确指定参数类型为int64.
是否有可能写这个功能,使得它能向两家合作int和int64?
你将不得不做类似的事情
let inline factors (primes :^a list) (i:^a) =
let zero:^a = LanguagePrimitives.GenericZero
let one:^a = LanguagePrimitives.GenericOne
let mutable j = i
for p in primes do
while (j>one) && (j%p=zero) do
j <- j/p
printfn "prime: %i" p
Run Code Online (Sandbox Code Playgroud)
我没有编译器,所以我的语法可能略有偏差
| 归档时间: |
|
| 查看次数: |
1765 次 |
| 最近记录: |