如何在方案中列出评估的所有中间步骤

时间:2019-02-14 14:06:56

标签: scheme lisp racket eval

例如,如果有表达式:

(map (lambda(x) (add1 x)) '(1 2 3))

其评估结果为:

'(2 3 4)

如何显示所有中间步骤,在这种情况下将是:

(map (lambda(x) (add1 x)) '(2 2 3))
(map (lambda(x) (add1 x)) '(2 3 3))

1 个答案:

答案 0 :(得分:0)

我认为做到这一点的最佳方法是开始制作自己的lambda演算解释器,并添加所需的额外方案功能,然后修改该解释器以生成所需的执行跟踪。

这可以帮助您开始编写口译员http://matt.might.net/articles/implementing-a-programming-language/