Haskell a une identité de fonction qui renvoie l'entrée inchangé. La définition est simple:
id :: a -> a
id x = x
Donc, pour s'amuser, cette sortie devrait 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
Après quelques secondes (et de 2 go de mémoire selon le Gestionnaire des Tâches), la compilation échoue avec l' ghc: out of memory
. De même, l'interprète, dit - ghci: out of memory
.
Depuis id
est assez simple fonction, je ne serais pas s'attendre à une mémoire de charge au moment de l'exécution ou de la compilation. Qu'est-ce que la mémoire utilisée?