haskell - GHCi - 第二次运行时跳过断点

我是 Haskell 的新手,在调试时我遇到了一个烦人的行为。

  1. 我使用 :break 添加断点
  2. 我运行 main
  3. 一切正常
  4. 我输入:继续完成执行

当我重新运行 main 时,断点不再命中,但断点没有被删除,因为 :show breaks 列出了它。有谁知道这是怎么回事吗?

我使用的是 64 位 Ubuntu 11.10。明天我将在不同的环境中对其进行测试。

谢谢

最佳答案

如果不看代码就很难知道,但听起来很可能在 main 的第二次运行中从未到达断点,因为延迟计算导致结果被缓存。第一次大概是THUNK(暂停求值),第二次就已经求值了。

https://stackoverflow.com/questions/9055662/

相关文章:

google-chrome - 使用 TFS/NUnit 通过构建过程执行时,使用 Google C

wcf - 检查权限的最佳位置在哪里?

.net - 如何设置 "user cannot change password"AD属性

cuda - 在 Cmake 项目中指定 openmp CUDA 标志

wpf - 语音识别 - 未处理的异常 - 未找到 SAPI,即使已安装

r - ggplot 中的条形图,每组条数不同

ruby-on-rails - 如何从 Rails 中的模型继承,其中一种类型在不交织的情况下扩展另

rest - 强制 web api 消费者接受响应中的新字段

php - php中var-export函数的反义词是什么?

php - 从 php 在计算机上运行脚本