Eventuali duplicati:
Memory footprint of Haskell data typesUtilizzo della memoria dei costruttori in Haskell
Quando la soluzione di problemi combinatori, che spesso rappresentano la soluzione come una stringa di bit, ad esempio. 1010100010110111000110 ... ottieni l'immagine.
ho pensato che quando uso [Int]
per la stringa di bit, Int
spende sempre la stessa quantità di memoria, non importa quanto grande il numero è in realtà (perché Int
è delimitata, in contrasto con Integer
), come il computer ricorda solo la rappresentazione del bit e lo String
richiederebbero ancora più spazio per quanto ne so.
la mia idea era quindi di utilizzare il tipo di dati
data Bits = Empty | Zero Bits | One Bits deriving (Eq,Ord,Show)
Ma la quantità di memoria fanno i costruttori Empty
, Zero
e One
usare rispetto ad Int
's?
Un 'Int' è sempre o 32 o 64 bit, quindi non può memorizzare numeri arbitrariamente grandi. "Intero", d'altra parte, è illimitato. – huon
Non pertinente alla tua domanda, ma ci sono i DataBits che hanno bitfield roba – Squidly
@dbaupp: lo so, è per questo che lo volevo comparato solo a "Int'" – Undreren