2015-08-20 14 views
8

Un tipo intero di precisione fissa con almeno l'intervallo [-2^29 .. 2^29-1]. L'intervallo esatto per una determinata implementazione può essere determinato utilizzando minBound e maxBound dalla classe Bounded.minBound e maxBound restituiscono il numero errato per Int

Questo è venuto direttamente da hackage.haskell.org.

Secondo sia hackage.haskell.org e learnyouahaskell.com, cosa dovrei ottenere è -2147483648 per minBound e 2147483648 per maxBound.

Quando ho effettivamente eseguo io stesso, ottengo questo risultato:

enter image description here

Mi scuso se questa è una domanda davvero stupida. Sono nuovo di Haskell e stavo testando in giro per vedere come funzionavano le cose.

Sto facendo qualcosa di sbagliato?

+3

'Int 'è garantito che * almeno * tale intervallo sia *. 'Int's sulla tua piattaforma sono 64 bit. Confronta con '2^63'. – luqui

+1

Ohhhhh! Questo ha molto senso! Anche se, dovresti rispondere come risposta e non come commento, quindi posso darti la risposta migliore. : P – Henry98

+1

La prossima volta leggere due volte la documentazione prima di pubblicare una domanda. Inoltre * non * utilizzare screenshot quando potresti semplicemente copiare e incollare il testo in un blocco di codice. Usando gli screenshot hai reso l'inserzione inutile ai lettori con problemi (sì, esistono, dovresti aggiungere una descrizione alle tue immagini per questo motivo), inoltre sarebbe impossibile per un rispondente copiare e incollare il risultato ottenuto. In altre parole: stai danneggiando l'usabilità per la maggior parte degli utenti. – Bakuriu

risposta

12

Int s sono garantiti solo per avere almeno tale intervallo. Int s sulla tua piattaforma sembrano essere 64 bit. Confronta con 2^63:

ghci> 2^63 
9223372036854775808 
Problemi correlati