jhe*_*dus 19 debugging evaluation haskell
我通过使用书中的一个例子来描述这个问题.
在Simon Thompson的书"HASKELL函数式编程工艺"(第82页)(见下图)中显示了评估步骤fac 4
.
题:
是否可以使用某些工具或一些"Haskell调试器"来写出GHCi在评估其价值时使用的评估步骤fac 4
?
优选地,以人类可读的格式,用于教育和学习目的.
对每个评估步骤进行一些自动解释也是很好的,例如在重写步骤中使用了哪个等式.
我的主要目的是更深入地了解在运行简单的教育Haskell示例程序(如fac
)时如何执行重写步骤.
有没有办法做到这一点 ?如果有,怎么样?
Sib*_*ibi 10
有一个名为Lambda bubble pop的工具,您可以在其中单击表达式以查看表达式如何减少.请注意,该工具仅支持整数和列表,但仍然是一个很好的教育工具.
实际工具的快照:
Ber*_*rgi 10
是和否.我还没有看到一个工具,它在你的教科书中描述了这种逐行评估 - 主要是因为Haskell程序没有"重写"表达式.
但是,有一个工具可以逐步可视化Haskell的实际评估策略:ghc-vis
.它不是仅仅评估结果并在控制台上显示它ghci
,而是显示未评估结果的图形表示 - 您可以通过thunk强制评估它,直到您到达原始值和结构.
作为它可以做什么的一个例子,这里的评估直到无限斐波那契序列的第三个列表成员:
评估0,1和1,列表的其余部分是回顾列表本身部分的thunk http://felsin9.de/nnis/ghc-vis/fib1.svg
资料来源:项目网站的示例部分.你应该看看他们所有人!
归档时间: |
|
查看次数: |
2023 次 |
最近记录: |