Duplicar posible:
Memory footprint of Haskell data typesuso de la memoria de los constructores en Haskell
Al resolver problemas combinatorios, que representa a menudo la solución como una cadena de bits, por ejemplo. 1010100010110111000110 ... Ya entiendo la imagen.
que pensé que cuando uso [Int]
para la cadena de bits, Int
siempre gasta la misma cantidad de memoria, no importa cuán grande es el número realmente es (porque Int
que está delimitada, en contraste con Integer
), ya que el equipo sólo se acuerda la representación de bit, y String
tomarían aún más espacio por lo que sé.
Mi idea era entonces para usar el tipo de datos
data Bits = Empty | Zero Bits | One Bits deriving (Eq,Ord,Show)
Pero la cantidad de memoria hacen los constructores Empty
, Zero
y One
manejar en comparación con Int
's?
Un 'Int' siempre es 32 o 64 bits, por lo que no puede almacenar números arbitrariamente grandes. 'Entero ', por otro lado, no tiene límites. – huon
Irrelevante a su pregunta, pero hay Data.Bits que tiene cosas bitfield – Squidly
@dbaupp: Sé que, es por eso que lo quería en comparación con sólo 'Int' – Undreren