Я новичок в F # и считаю, что вывод типа действительно классный. Но в настоящее время кажется, что это также может привести к дублированию кода, что не очень круто. Я хочу суммировать цифры такого числа:
let rec crossfoot n =
if n = 0 then 0
else n % 10 + crossfoot (n / 10)
crossfoot 123
Это правильно печатает 6
. Но теперь мой номер ввода не соответствует int 32 бит, поэтому мне нужно его преобразовать.
let rec crossfoot n =
if n = 0L then 0L
else n % 10L + crossfoot (n / 10L)
crossfoot 123L
Тогда a BigInteger
подходит мне и догадывается, что...
Конечно, я мог бы иметь только bigint
версию и вводить параметры ввода и выводить параметры по мере необходимости. Но сначала я предполагаю, что использование BigInteger
над int
имеет некоторые нарушения производительности. Второй let cf = int (crossfoot (bigint 123))
просто не читается.
Разве нет общего способа написать это?