这里曾经提出过一个类似的问题,但那已经是十年前的事情了,我希望在此期间有一些进展,现在可能会得到不同的答案。
目前我正在使用VSCode,并安装了“Haskell GHCi Debug Adapter Phoityne”。它可以工作,但由于Haskell的惰性(纯代码和IO代码的分离以及Haskell的函数式特性),调试代码仍然很困难。
一些解决这些问题的方案似乎已被提出。例如,我找到了this article,它比较了Haskell中的调试技术,并命名了几个尝试通过引入函数“观察”来改善体验的包。其中,Hood、Hoed和Hat都被命名,我还在hackage上找到了debug。然而,不幸的是,我无法让它们正常工作。安装Hood时,我收到错误消息,指出它有一个依赖项FPretty与较新版本的基础包不兼容(自2018年以来已经提出了问题)。同样的问题也出现在Hoed上。当我安装Hat时,出现了许多错误,开始抱怨缺少模块,并在解释程序时出现调试崩溃。
因此,我无法测试任何一个。然而,我真正想要的是一个图形化调试器(最好是VSCode中已实现版本的改进版!),它能跳转到正在检查的源代码行,然后显示一个小窗口,逐步展开递归(可以不进行评估,甚至更好的是,在递归完成之后提供逐步评估选项,即在实际评估之前),类似于这篇维基文章中foldr的效果。
以上的软件包中是否有一个可以实现这个功能?对于Haskell社区来说,拥有这样的VSCode功能来改善生态系统并吸引新手会很好吧?或者这已经是可能的了,只是我不知道如何正确配置Phoityne?或者您有完全不同的方法来高效地调试Haskell?您的工作流程是什么?
Debug.Trace
。) - leftaroundaboutseq
)没有定义。 - leftaroundabout