Есть ли уловки для неявных преобразований в F #?

Рассмотрим этот код F # для суммирования чисел нижеi которые кратны 3 и 5:

let isMultipleOfThreeOrFive n = 
    (n % 3 = 0) || (n % 5 = 0)

let sequenceOfMultiples i =
    seq {1 .. i - 1} |> Seq.filter isMultipleOfThreeOrFive

посколькуi являетсяintпереполнится, еслиi большой. Эта версия сBigInteger заботится об этом:

let isMultipleOfThreeOrFive n = 
    (n % 3I = 0I) || (n % 5I = 0I)

let sequenceOfMultiples (i : System.Numerics.BigInteger) =
    seq {1I .. i - 1I} |> Seq.filter isMultipleOfThreeOrFive

Чтобы преобразоватьint версия кBigInteger версия, мне пришлось добавить многоIс после чисел. Это потому, что F # не делает неявных преобразований.

Есть ли простой способ обойти это, или добавлялIS в 6 местах, что лучше всего сделать?

Ответы на вопрос(2)

Ваш ответ на вопрос