我用一本书中的例子来描述这个问题。
在Simon Thompson的书中,第82页的“HASKELL函数式编程技巧”(见下图)显示了fac 4
的评估步骤。
问题:
是否可以使用某些工具或一些“Haskell调试器”来编写GHCi在评估fac 4
的值时使用的评估步骤?
最好是人类可读的格式,用于教育和学习目的。
对每个评估步骤进行一些自动解释也是很好的,例如在重写步骤中使用了哪个等式。
我的主要目的是更深入地了解在运行简单的教育Haskell示例程序(如fac
)时如何执行重写步骤。
有办法做到这一点吗?如果是,怎么样?
答案 0 :(得分:10)
答案 1 :(得分:10)
是和否。我还没有看到一个工具,它在您的教科书中描述了这种逐行评估 - 主要是因为Haskell程序没有“重写”表达式。
但是,有一个工具可以逐步可视化Haskell的实际评估策略:ghc-vis
。它不是仅仅评估结果并在控制台上显示ghci
,而是显示未评估结果的图形表示 - 你可以强制通过thunk评估它,直到你得到原始值和结构。
作为它能做什么的一个例子,这是评估直到无限斐波那契序列的第三个列表成员:
来源:examples section of the project website。你应该看一下所有这些!
答案 2 :(得分:2)
这是一个非常有用且非常有用的功能 - 据我所知,这在任何地方都无法使用。 : - (