Haskell memiliki fungsi identitas yang mengembalikan masukan tanpa perubahan. Definisinya sederhana:
id :: a -> a
id x = x
Jadi untuk bersenang-senang, ini harus menghasilkan 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
Setelah beberapa detik (dan sekitar 2 gb memori menurut Pengelola Tugas), kompilasi gagal dengan ghc: out of memory
. Demikian kata penerjemah ghci: out of memory
.
Karena id
ini adalah fungsi yang cukup sederhana, saya tidak akan mengharapkannya menjadi beban memori pada saat menjalankan atau waktu kompilasi. Untuk apa semua memori digunakan?
id
s itu. Dalam VIM, dengan kursor pada definisif
, lakukan ini::s/id id/id . id ./g
.