Haskell hat eine Identitätsfunktion, die die Eingabe unverändert zurückgibt. Die Definition ist einfach:
id :: a -> a
id x = x
Zum Spaß sollte dies also Folgendes ausgeben 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
Nach einigen Sekunden (und laut Task-Manager ca. 2 GB Speicher) schlägt die Kompilierung mit fehl ghc: out of memory
. Ebenso sagt der Dolmetscher ghci: out of memory
.
Da id
es sich um eine ziemlich einfache Funktion handelt, würde ich nicht erwarten, dass sie zur Laufzeit oder zur Kompilierungszeit eine Speicherbelastung darstellt. Wofür wird der gesamte Speicher verwendet?
id
s komponieren . Führen Sie in VIM mit dem Cursor auf die Definition vonf
Folgendes aus ::s/id id/id . id ./g
.