GHCi中如何处理中断?
我正在试验 GHCi 的:sprint命令。考虑以下:
GHCi> xs = [1..10] :: [Int]
GHCi> :sprint xs
xs = _
GHCi> length xs
10
GHCi> :sprint xs
xs = [1,2,3,4,5,6,7,8,9,10]
这按预期工作。我感兴趣的是:sprint我们中断一些计算后的行为。考虑以下:
GHCi> xs = [1..] :: [Int]
GHCi> :sprint xs
xs = _
GHCi> length xs
Interrupted.
GHCi> :sprint xs
它挂了。
预期的结果是这样的(以:s的数量为模):
xs = _ : _ : _ : _
什么原因导致:sprint ...冻结?为什么无法访问有关已计算的列表部分的信息?对我来说这似乎是一个错误 - 没有真正的理由抛弃被打断的所有工作length。这确实是一个错误,还是我错了?