在PLAI的第9章“理解递归”中,开头有一个示例阶乘:
(with (fac (fun (n)
(if0 n
1
(* n (fac (+ n -1))))))
在第90页,作者说:“在你继续阅读之前,请暂停片刻,仔细研究课程,在每个阶段写下环境,逐步通过翻译,如果你愿意,甚至可以运行程序,说服自己会发生这种错误。彻底了解错误对于遵循本节的其余部分至关重要。“ 但我不确定我是否可以完全写下这些步骤,有人想帮我写下这些步骤吗?非常感谢提前!
答案 0 :(得分:2)
让您的口译员为您打印出适合您的步骤。
(define (interp expr env)
(displayln (list 'expr expr 'env env))
(type-case CFAE/L expr
答案 1 :(得分:0)
阅读并运行第10章的代码后,独立执行上述程序的中间步骤,如
(interp (if0 (id 'n) (num 1) (mult (id 'n) (app (id 'fac) (sub (id 'n) (num 1)))))
(aSub 'n
(numV 2)
(closureV-env (lookup 'fac new-env))))
我可以手工写下这些步骤!谢谢每一个人!