我使用了这段代码:
fix' f = let x = f x in x
然后跑
> :set +s
> fix' (const 'u')
只得到:
'u'
(0.00 secs, 83,512 bytes)
现在为什么会占用这么多内存?
我将评估如下:
fix' f = let x = f x in x
fix' (const 'u')
let x = const 'u' x in x
const _ x = x
const 'u' undefined
'u'
这当然是一种非常低效的格式,但在ASCII编码中只需要105个字节,加上用于比较的一些内存使用量仍然无法在fix
示例中使用。