我正在GHCi做一些实验,而且我正在尝试调整中等长时间(5分钟)的操作。结果开始中途打印,我经常可以告诉我的算法在1分钟或更短的时间后没有正确调整,所以我取消了操作。但是当我找到结果时,我想让它继续到最后,然后再使用它。但是,如果我在启动时分配它,我就无法看到它的处理过程。有没有办法可以访问输入GHCi的前一个表达式的结果?
答案 0 :(得分:21)
为此目的,GHCi具有特殊变量it
。
Prelude> 1
1
Prelude> it
1
正如GHCi docs中所解释的那样,原因是非IO表达式的行为如此
someExpr ==> let it = someExpr
print it
如果someExpr
是IO,那么我们就有
it <- someExpr
print it
所以it
应始终是您之前表达的结果。