¿Hay trucos para hacer conversiones implícitas en F #?
Considere este código F # para sumar los números a continuacióni
que son múltiplos de 3 y 5:
let isMultipleOfThreeOrFive n =
(n % 3 = 0) || (n % 5 = 0)
let sequenceOfMultiples i =
seq {1 .. i - 1} |> Seq.filter isMultipleOfThreeOrFive
Ya quei
es unint
, se desbordará sii
es largo. Esta versión conBigInteger
se encarga de eso:
let isMultipleOfThreeOrFive n =
(n % 3I = 0I) || (n % 5I = 0I)
let sequenceOfMultiples (i : System.Numerics.BigInteger) =
seq {1I .. i - 1I} |> Seq.filter isMultipleOfThreeOrFive
Para convertir elint
versión a laBigInteger
versión, tuve que agregar muchosI
s después de los números. Esto se debe a que F # no realiza conversiones implícitas.
¿Hay alguna manera fácil de evitar esto o estaba agregandoI
s en 6 lugares lo mejor que puedes hacer?