2015-08-20 5 views
8

Ein ganzzahliger Typ mit fester Genauigkeit mit mindestens dem Bereich [-2^29 .. 2^29-1]. Der genaue Bereich für eine bestimmte Implementierung kann bestimmt werden, indem Sie minBound und maxBound von der Bounded-Klasse verwenden.minBound und maxBound geben falsche Zahl für Int zurück

Dies kam direkt von hackage.haskell.org.

Sowohl nach hackage.haskell.org und learnyouahaskell.com, was ich soll bekommen -2147483648 für minBound und 2147483648 für maxBound.

Wenn ich es mir eigentlich laufen, bekomme ich dieses Ergebnis:

enter image description here

Entschuldigt, wenn dies eine wirklich dumme Frage. Ich bin neu bei Haskell und habe getestet, wie die Dinge funktionierten.

Mache ich etwas falsch?

+3

'Int sind nur garantiert * mindestens * dieser Bereich. 'Int's auf Ihrer Plattform sind 64 Bit. Vergleichen Sie mit '2^63'. – luqui

+1

Ohhhhh! Das macht so viel Sinn! Obwohl du das als Antwort und nicht als Kommentar beantwortet haben solltest, kann ich dir die beste Antwort geben. : P – Henry98

+1

Das nächste Mal lesen Sie zweimal die Dokumentation vor dem Posten einer Frage. Verwenden Sie Screenshots nicht, wenn Sie einfach Text in einen Codeblock kopieren und einfügen können. Durch die Verwendung von Screenshots haben Sie den Beitrag für lesebehinderte Leser unbrauchbar gemacht (ja, sie existieren; Sie sollten aus diesem Grund eine Beschreibung zu Ihren Bildern hinzufügen), außerdem wäre es für einen Beantworter unmöglich, das erhaltene Ergebnis zu kopieren und einzufügen. Mit anderen Worten: Sie schaden der Benutzerfreundlichkeit für die meisten Benutzer. – Bakuriu

Antwort

12

Int s sind nur garantiert mindestens dieser Bereich. Int s auf Ihrer Plattform scheinen 64 Bit zu sein. Vergleichen Sie mit 2^63:

ghci> 2^63 
9223372036854775808 
Verwandte Themen