我正在编写一个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
它适用于 i
的 int
值,但不适用于 int64
值 . 参数 primes
是一组int值 .
我理解为什么会这样 - 类型推断假设函数只接受 int
参数 - 但我想明确地将参数类型指定为 int64
.
是否可以编写此函数以使其适用于 int
和 int64
?
2 回答
如果您只想使用
int64
值,只需将1
和0
分别替换为1L
和0L
. jpalmer的答案涵盖了一般案例 .你将不得不做类似的事情
我没有编译器,所以我的语法可能略有偏差