Frage

Ich war mit der Pow Funktion der BigInteger Klasse in F #, wenn mein Compiler mir gesagt:

  

Dieses Konstrukt ist veraltet. Dieses Mitglied wurde, dass dies zu gewährleisten entfernt      Typ ist binärkompatibel mit dem .NET 4.0 Typ System.Numerics.BigInteger

Na gut denke ich, aber ich habe nicht unverzüglich Ersatz gefunden.

Gibt es eine? Sollten wir nur unsere eigenen Pow Funktionen nutzen? Und (wie) wird es in NET4.0 ersetzt werden?

War es hilfreich?

Lösung

Sie können die pown Funktion

let result = pown 42I 42

pown arbeitet auf jeder Art, dass ‚versteht‘ Multiplikation und ‚Eins‘.

Andere Tipps

Wenn man sich Fis aus der Perspektive auf OCaml basiert, dann die OCaml Num-Modul power_num hat. Da num OCaml Typ beliebiger Genauigkeit rationale Zahlen sind, können sie eine beliebige Größe Nummer handhaben, z.B. sie werden nicht durch die CPU-Register begrenzt, weil sie symbolisch die Mathematik tun. Auch da num ist definiert als

Typ num =
| Int int
| Big_int von Big_int.big_int
| Verhältnis von Ratio.ratio

sie sehr kleine Zahlen mit aus Präzisionsverlust wegen des Ratio-Typs verarbeiten können.

Da F # nicht den num Typen hat, Jack erstellt die FSharp.Compatibility.OCaml Modul, das hat num.fs und ist über NuGet zur Verfügung.

Sie können also alle die Präzision erhalten Sie diese verwenden möchten, und die num Funktionen negativen Exponenten verarbeiten kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top