Pregunta

Yo estaba usando la función Pow de la clase BigInteger en F # cuando mi compilador me dijo:

  

Esta construcción está en desuso. Este miembro se ha eliminado para asegurar que este      tipo es binario compatible con el tipo de .NET 4.0 System.Numerics.BigInteger

Justo lo suficiente, supongo, pero no me encontré con un reemplazo de inmediato.

¿Hay uno? En caso de que sólo se utilice nuestras propias funciones Pow? Y (cómo) que va a ser reemplazado en NET4.0?

¿Fue útil?

Solución

Puede utilizar la función pown

let result = pown 42I 42

pown funciona en cualquier tipo que 'entiende' multiplicación y 'uno'.

Otros consejos

Si nos fijamos en F # desde la perspectiva de estar basado en OCaml, entonces el módulo de OCaml Num tiene power_num. Desde OCaml tipo num son de precisión arbitraria números racionales que pueden manejar cualquier número de tamaño, por ejemplo, ellos no están limitados por el registro de la CPU, ya que pueden hacer los cálculos simbólicamente. También desde num se define como

Tipo num =
| Int int de
| Big_int de Big_int.big_int
| Proporción de Ratio.ratio

que pueden manejar números muy pequeños con pérdida de precisión debido al tipo de relación.

Como F # no tiene el tipo num, Jack creado el módulo FSharp.Compatibility.OCaml que tiene num.fs y está disponible a través NuGet.

Así se puede obtener toda la precisión que desee utilizar este, y las funciones num puede manejar exponentes negativos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top