Вопрос

Я использовал функцию Pow класса BigInteger в F#, когда мой компилятор сказал мне:

Эта конструкция устарела.Этот элемент был удален, чтобы убедиться, что этот тип совместим с системой .net 4.0 Type.numerics.biginteger

Думаю, это справедливо, но замену я нашел не сразу.

Есть ли такой?Должны ли мы использовать только наши собственные функции Pow?И (как) оно будет заменено в NET4.0?

Это было полезно?

Решение

Вы можете использовать функцию pown

let result = pown 42I 42

pown работает с любым типом, который «понимает» умножение и «единицу».

Другие советы

Если вы посмотрите на F# с точки зрения того, что он основан на OCaml, то Модуль OCaml Num имеет power_num.Поскольку num типа OCaml являются рациональными числами произвольной точности, они могут обрабатывать числа любого размера, например.они не ограничены регистром ЦП, поскольку могут выполнять математические операции символьно.Кроме того, поскольку num определяется как

тип номер =
| Int int
| Big_int of big_int.big_int
| Соотношение соотношения.ratio

они могут обрабатывать очень маленькие числа без потери точности из-за типа Ratio.

Поскольку F# не имеет типа num, Джек создал FSharp.Compatibility.OCaml модуль, который имеет число.fs и доступен через NuGet.

Таким образом, вы можете получить всю необходимую точность, используя это, а функции num могут обрабатывать отрицательные показатели.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top