Vor nicht langer Zeit habe ich Natural
Datentyp in base
entdeckt. Es soll genommen werden (wie es mir scheint), wenn Sie beabsichtigen, nicht-negativen Integer-Typ zu verwenden. Aber es ist nicht genau klar, warum sollte ich Natural
zu Integer
bevorzugen. Beide Typen haben eine beliebige Genauigkeit, beide haben eine optimierte Laufzeitdarstellung - Integer
representation und Natural
representation. Aber Natural
can throw pure exceptions wenn Sie natürliche Zahlen subtrahieren und das fügt Ihrem Code nicht wirklich mehr Typsicherheit hinzu. Während Integer
ist über alle Pakete beliebter.Wann wählen Sie "Natural" über "Integer" in Haskell?
Also wann und warum sollte ich Natural
verwenden?
Dies könnte ein bisschen eigensinnig sein, aber mein Kriterium wäre "Wenn Sie einen Laufzeitfehler zu einem negativen Ergebnis bevorzugen, wählen Sie" Natural " – chi
@chi Agree. Während wir 'negate' und' (-) 'innerhalb' Num' Klasse haben, können wir nicht viel tun, um Subtraktionen zu vermeiden. – Shersh