最佳答案
Haskell 有一个标识函数,它返回的输入不变。定义很简单:
id :: a -> a
id x = x
所以为了好玩,这个应该输出 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
几秒钟后(根据 TaskManager,大约有2gb 的内存) ,使用 ghc: out of memory
编译失败。类似地,解释器说 ghci: out of memory
。
由于 id
是一个非常简单的函数,我不希望它在运行时或编译时占用大量内存。所有的内存都是用来做什么的?