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 ides 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?
ids komponieren . Führen Sie in VIM mit dem Cursor auf die Definition vonfFolgendes aus ::s/id id/id . id ./g.