12

我正在 GHCi 中进行一些实验,并且我正在尝试调整运行时间适中(5 分钟)的操作。结果在中途开始打印,我经常可以说我的算法在 1 分钟或更短的时间内还没有正确调整,所以我取消了操作。但是当我确实找到结果时,我想让它一直持续到最后,然后再使用它。但是,如果我在启动它时分配它,我无法在它处理时看到它。有什么方法可以访问输入 GHCi 的前一个表达式的结果?

4

1 回答 1

26

GHCi 具有it用于此目的的特殊变量。

Prelude> 1
  1
Prelude> it
  1

正如GHCi 文档中所解释的那样,其原因是非 IO 表达式的行为如下

someExpr ==> let it = someExpr
             print it

如果someExpr是 IO 那么我们会有

it <- someExpr
print it

所以it应该始终是您先前表达式的结果。

于 2013-06-06T06:39:42.197 回答