计算机程序的构造与解释
文章平均质量分 72
ssjssh
大部分时间在github上:https://github.com/ssjssh
展开
-
计算机程序的构造与解释作业:练习1.1到1.5
1.1,我用的是kawa,这是用java实现的一个scheme的解释器,kawa(在window下直接双击打开就可以运行) #|kawa:1|# 10 10 #|kawa:2|# (+ 5 3 4) 12 #|kawa:3|# (- 9 1) 8 #|kawa:4|# (/ 6 2) 3 #|kawa:5|# (+ (* 2 4) (- 4 6)) 6 #|kawa:6|#原创 2013-10-18 20:16:05 · 1171 阅读 · 1 评论 -
计算机程序的构造和解释作业:1.6到1.8
(define (new-if pre then-clause else-clause) (cond (pre then-clause) (else else-clause))) (define (sqrt-iter guess target) (new-if (good-enough? guess target) guess (sqrt-iter (improve guess t原创 2013-10-19 18:32:55 · 1255 阅读 · 0 评论 -
计算机程序的构造与解释作业:练习1.9到1.10
1.9 第一个过程显然是递归,用替换模型张开后,这个过程是一个先增大后减小的过程。从状态变量的反面来说,a在这个过程里面存储了一个状态,他是一个计数器(判断是不是变量一个状态变量的基本方法就是这个变量是不是可变)。但是b则完全没有状态,这个程序的结果依赖于每一个中间步骤,这个过程的执行也不能停下来。 而第二个过程则是铁定的过程,因为a和b都是一个状态变量。a是一个计数器,b则就是结果。因此这原创 2013-10-19 20:42:42 · 1179 阅读 · 0 评论 -
计算机程序的构造与解释作业:练习1.11到1.13
1,11 首先使用递归就是把这个函数直接翻译成Scheme (define (f n) (cond ((< n 3) n) (else (+ (f (- n 1)) (f (- n 2)) (f (- n 3)))))) 如果使用的是递归,那么这个思路就是首相给每个计算中间值设定一个状态变量。 (define (f n) (f-iter n)) (d原创 2013-10-28 09:25:15 · 1064 阅读 · 0 评论 -
计算机程序的构造与解释作业:练习1.16到1.19
1.16 这个题目就是直译一下题目里面的公式。看开始我看了一下前面的题目,就高高兴兴的写出来了。如下: (define (even? n) (= (remainder n 2) 0)) (define (fast-expt b n) (cond((= n 0) 1) ((even? n) (fast-expt (* b b) (/ n 2))) (else (* b (原创 2013-11-11 17:05:42 · 1065 阅读 · 0 评论