Я пишу функцию 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
Он работает для int
значений i
, но не для int64
значений. Параметр primes
представляет собой набор значений int.
Я понимаю, почему это так - вывод типа предполагает, что функция принимает только int
параметров, но я хочу явно указать тип параметра как int64
.
Можно ли написать эту функцию так, чтобы она работала и для int
, и для int64
?
printfn
должна быть лишена отступа, чтобы она находилась после цикла while - person John Palmer   schedule 28.09.2011