我曾使用过ghci调试器,但更希望它能与文本编辑器集成,以简化设置断点的流程。它应该至少简化查看局部状态的过程,而不是严格评估每个可见变量。
最近我发现了trace函数,它允许从通常难以调试的位置输出调试信息,对我很有帮助。
xmonad
就是使用QuickCheck进行广泛调试的。是的,为GHCi调试器设计一个前端将是一件好事。也许我们可以在下一次Hackathon期间完成一些工作。但与此同时:
另外,Haskell非常适合使用QuickCheck进行自下而上的测试。即,单独测试组件,然后将它们组合在一起。如果你的代码是纯函数式的,这通常会非常顺利。
Debug.trace
不会给你带来帮助。根据我的经验,这与多种因素有关。
正如其他答案中所述,许多人喜欢QuickCheck。我发现为我的某些代码定义有意义的QuickCheck测试用例比较困难,因此通常更多地使用标准单元测试。 话虽如此,在Real World Haskell的第11章中有一份优秀的介绍,介绍如何使用QuickCheck。
如果您发现自己同时使用QuickCheck和HUnit,则可以考虑使用test-framework。