Haskell tiene una función de identidad que devuelve la entrada sin cambios. La definición es simple:
id :: a -> a
id x = x
Entonces, para divertirse, esto debería generar 8
:
f = id id id id id id id id id id id id id id id id id id id id id id id id id id id
main = print $ f 8
Después de unos segundos (y aproximadamente 2 gb de memoria según el Administrador de tareas), la compilación falla con ghc: out of memory
. Del mismo modo, dice el intérprete ghci: out of memory
.
Dado que id
es una función bastante simple, no esperaría que sea una carga de memoria en tiempo de ejecución o tiempo de compilación. ¿Para qué se utiliza toda la memoria?
id
s. En VIM, con el cursor en la definición def
, hacer esto::s/id id/id . id ./g
.