Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 在GHCi中调试无法解决的thunk_Haskell_Ghci - Fatal编程技术网

Haskell 在GHCi中调试无法解决的thunk

Haskell 在GHCi中调试无法解决的thunk,haskell,ghci,Haskell,Ghci,我的程序中有一个无限循环,在正常运行时会导致异常。使用GHCi,我追踪到了问题的根源 f = Constructor1 (Constructor2 A : (_t3::[DataType2])) 尝试用seq\u t3()对thunk进行排序会导致GHCi挂起,因此如果我理解正确,无限循环将发生在弱水头标准形式的还原中。有没有办法调查这个问题,例如一步一步地查看试图用来评估它的简化步骤?有没有办法缩小问题的范围,使其足够短,可以在这里发布?如果不能缩小范围(例如,通过使足够多的相关定

我的程序中有一个无限循环,在正常运行时会导致
异常。使用GHCi,我追踪到了问题的根源

f = Constructor1
  (Constructor2 A :
   (_t3::[DataType2]))

尝试用
seq\u t3()
对thunk进行排序会导致GHCi挂起,因此如果我理解正确,无限循环将发生在弱水头标准形式的还原中。有没有办法调查这个问题,例如一步一步地查看试图用来评估它的简化步骤?

有没有办法缩小问题的范围,使其足够短,可以在这里发布?如果不能缩小范围(例如,通过使足够多的相关定义变得无关紧要),为什么?我想不出缩小范围的方法;这正是我想问这个问题的目的。这是在一个非常大的程序中发生的,无限循环的惰性生成似乎不会发生在thunk计算点附近的任何地方。我想知道thunk在我的程序中来自哪里;例如,它是对具有某些已知参数的某个已知函数的调用历史记录没有透露,由于循环检测,使用分析运行程序会很快终止,因此没有明显的循环位置。能否在异常时启用堆栈跟踪,然后在无限循环期间启用Ctrl-C?