Haskell ha una funzione di identità che restituisce l'input invariato. La definizione è semplice:
id :: a -> a
id x = x
Quindi, per divertimento, questo dovrebbe produrre 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
Dopo pochi secondi (e circa 2 GB di memoria secondo Task Manager), la compilazione non riesce con ghc: out of memory
. Allo stesso modo, dice l'interprete ghci: out of memory
.
Poiché id
è una funzione piuttosto semplice, non mi aspetto che sia un carico di memoria in fase di esecuzione o in fase di compilazione. A cosa serve tutta la memoria?
id
s. In VIM, con il cursore sulla definizione dif
, fare questo::s/id id/id . id ./g
.