首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在第9章的PLAI的第一个程序中,程序的执行包括哪些步骤

在第9章的PLAI的第一个程序中,程序的执行包括哪些步骤
EN

Stack Overflow用户
提问于 2012-08-17 17:11:02
回答 2查看 99关注 0票数 1

PLAI的chapter9“理解递归”中,开头有一个阶乘示例:

代码语言:javascript
复制
(with (fac (fun (n)
                (if0 n 
                     1
                     (* n (fac (+ n -1))))))

在第90页,作者说:“在你继续阅读之前,请暂停片刻,仔细研究程序,写下每个阶段的环境,通过解释器一步一步地写下来,如果你愿意,甚至可以运行程序,以说服自己这个错误将会发生。彻底理解错误对于后面的章节是至关重要的。”

但是我不确定我能把这些步骤完整地写下来,有人愿意帮我把这些步骤写下来吗?提前谢谢你!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-18 17:25:37

让你的解释器为你打印出步骤。

代码语言:javascript
复制
(define (interp expr env)
  (displayln (list 'expr expr 'env env))
  (type-case CFAE/L expr
票数 2
EN

Stack Overflow用户

发布于 2012-08-19 12:22:12

在阅读并运行了第10章的代码之后,独立执行了上述程序的中间步骤,例如

代码语言:javascript
复制
(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))))

我可以手写这些步骤!感谢每一个人!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12002940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档