Ch1.1 程序设计的基本元素
习题:
1.1
(+ 5 3 4) 12
(- 9 1) 8
(/ 6 2) 3
(+ (*2 4) (- 4 6 )) -16
(define a 3) a=3
(define b (+ a 1 )) b=4
(if (and (>b a) (< b ( * a b )))
     b
     a)
4
(cond ((= a 4) 6)
         ((= b 4) ( + 6 7 a))
         (else 25))
16
(+ 2 ( if ( > b a ) b a )) 6
(* (cond (( > a b ) a)
             (( < a b ) b)
             (else -1))
     (+ a 1))
16
1.2
(/ (+ 5 (+ 4 (- 2 (- 3 (+ 6 ( / 4 5)))))) (* 3 (- 6 2) (- 2 7))
1.3
(define (min x y)
(if ( < x y ) x y ))
(define (larger-sum a b c)
(- (+ a b c) (min (min a b) c ))
1.4
对a与b的绝对值求和,即a+|b|
1.5
采用应用序,会先对运算对象进行求值,在(test 0 (p))中,即先会对(p)进行求值,然而(define (p) (p)),所以对(p)进行求值会陷入死循环;而采用正则序,知道实际需要运算对象的值的时候才会进行求值,在题目的运算中,先进行if判断后,直接返回0,避免了对(p)进行求值。
1.6
使用自定义的new-if进行求平方根运算时,按照应用序会先对运算对象进行求值,在对第三个参数的求值过程中会出现对其本身的递归调用,同1.5相似,也会陷入死循环。
1.7
按照比值进行判断,如果两者之积为0,则无法进行判断
(define (good-enough? guess x)
(if (= 0 ( * guess x ))
    false
    (< (abs (- ( abs (/ guess x )) 1)) 0.001)))
1.8
(define (cubt-iter guess x)
  (define (cube guess) ( * guess guess guess))
  (define (good-enough? guess x)
    (if (= 0 ( * guess x ))
        false
        (< (abs (- ( abs (/ (cube guess) x )) 1)) 0.001)))
  (define (improve guess x)
    (/ (+ (/ x (* guess guess)) (* 2 guess)) 3))
  (if (good-enough? guess x)
      guess
      (cubt-iter (improve guess x) x)))
Ch1.2 过程与它们所产生的计算
习题:
1.9
(+ 4 5)
(inc ( + 3 5 ))
(inc ( inc ( + 2 5 )))
(inc ( inc ( inc ( + 1 5 ))))
(inc ( inc ( inc ( inc ( + 0 5 )))))
(inc ( inc ( inc ( inc 5 ))))
(inc ( inc ( inc 6 )))
(inc ( inc 7 ))
(inc 8 )
9
( + 4 5 )
( + 3 6 )
( + 2 7 )
( + 1 8 )
( + 0 9 )
9
递归计算过程 迭代计算过程
1.10
( A 1 10 )
( A 0 ( A 1 9 ))
( A 0 ( A 0 ( A 1 8 )))
...

( A 0 ( A 0 ( A 0 ( A 0 ( A 0 ( A 0 ( A 0 ( A 0 ( A 0 ( A 1 1)))))))))))
( A 0 ( A 0 ( A 0 ( A 0 ( A 0 ( A 0 ( A 0 ( A 0 ( A 0 2))))))))))
( A 0 ( A 0 ( A 0 ( A 0 ( A 0 ( A 0 ( A 0 ( A 0 2^2)))))))))
( A 0 ( A 0 ( A 0 ( A 0 ( A 0 ( A 0 ( A 0 2^3))))))))

...
2^10
1024
( A 2 4 )
( A 1 ( A 2 3 ))
( A 1 ( A 1 ( A 2 2 )))
( A 1 ( A 1 ( A 1 ( A 2 1 ))))
( A 1 ( A 1 ( A 1 2 )))
( A 1 ( A 1 ( A 0 ( A 1 1))))
( A 1 ( A 1 ( A 0 2 )))
( A 1 ( A 1 4 ))
( A 1 2^4)
2^(2^4)
65536
( A 3 3 )
( A 2 ( A 3 2 ))
( A 2 ( A 2 ( A 3 1 )))
( A 2 ( A 2 2 ))
( A 2 ( A 1 ( A 2 1 )))
( A 2 ( A 1 2 ))
( A 2 ( A 0 ( A 1 1 )))
( A 2 ( A 0 2 )))
( A 2 4 )
65535
(define ( f n ) ( A 0 n ))
=>2*n
(define ( g n ) ( A 1 n ))
=>2^n
(define ( h n ) ( A 2 n ))
=>2^(2^(2^...(2^2)))  一共n个2

转载于:https://www.cnblogs.com/renzhiwei/archive/2011/12/30/2307305.html

习题第一章 构造过程抽象相关推荐

  1. 操作系统习题——第一章

    操作系统习题--第一章 1.设计现代OS的主要目标是什么? 答:(1)有效性 ( 2)方便性 ( 3)可扩充性 ( 4)开放性 2. OS 的作用可表现在哪几个方面? 答:(1) OS 作为用户与计算 ...

  2. SICP学习笔记及题解---构造过程抽象(一)

    有段时间没看这本书了. 而且在做笔记的时候产生了一些疑问,觉得这样照着书做笔记没什么意义.于是乎,改变了一下做法.改成先提出疑问,记下重点,然后结合实际案例学习相关东西,最后附上题解, ok,下面就是 ...

  3. 软件项目管理案例教程第4版课后习题第一章

    第一章 一.填空题 二.判断题 三.选择题 四.问答题 一.填空题 1.敏捷模型包括(4)个核心价值,对应(12)个敏捷原则. 详解: 敏捷开发4句宣言: 个体与交互 胜过 过程与工具 可以工作的软件 ...

  4. 《大数据基础——基于Hadoop与Spark》课后习题——第一章部分答案

    仅用于我个人的学习.书籍为人民邮电出版社的<大数据技术基础--基于Hadoop与Spark>.课后习题选择是我个人认为有用的.记录下来是为了督促我学习:) 共好 1.请指出以下术语的基本含 ...

  5. c语言程序中的注释必须单独占一行,C语言习题第一章

    以下叙述中错误的是() A.一个C语言程序只能有一个主函数 B.C语言编写的每个函数都可以进行独立的编译并执行 C.C语言编写的函数都可以作为一个独立的源程序文件 D.C语言编写的函数源程序,其文件名 ...

  6. 第1章 计算机基础知识习题答案,职称计算机基础知识习题第一章

    ________决定计算机的运算精度. A.主频 B.字长 C.内存容量 D.硬盘容量 [正确答案:]B 在下列存储器中,________存取速度最快. A.磁带 B.软盘 C.硬盘 D.光盘 [正确 ...

  7. 算法入门经典习题第一章

    习题1-1 平均数(average) #include<iostream> #include<bits/stdc++.h> using namespace std; int m ...

  8. 计算机程序的构造和解释1构造过程抽象1.2过程与它们所产生的计算

    线性递归: function factorial(n){     return n==1 ? 1 : n*factorial(n-1); } 线性迭代: function factorial(n){ ...

  9. 数据结构戴敏课后习题第一章

    1.数据逻辑结构包括集合,线性,树形结构和图形结构 4中基本结构,树形结构和图形结构统称非线性结构. 线性结构中元素之间存在一对一关系,树形结构元素之间存在一对多关系,图形结构中元素之间存在多对多关系 ...

  10. rocketmq namesrv 第一章启动过程

    大家好,很高兴在这里跟大家分享下rocketmq源码实现,如有不对的地方欢迎指正. Namesrv顾名思义就是名称服务,是没有状态可横向扩展的服务.废话不多说了,直接贴代码.. 1,入口函数Names ...

最新文章

  1. python中的逗号_Python中的逗号有什么作用?
  2. linux 挂载 nfs 权限,linux – 如何允许写入已挂载的NFS分区
  3. sql语句中嵌套2层循环
  4. tms tck_记录合规性–关于TCK,规格和测试
  5. 老生常谈session,cookie的区别,安全性
  6. F5实现2台机器的热备 Priority Group Activation
  7. 当当图书每满100减50,两种优惠券助你两手薅羊毛
  8. android开发笔记之materialish-progress
  9. 【IT视频】支付宝架构师眼中的高并发架构
  10. 大陆资金港股打新股亲身体验全流程
  11. Jdbc结果集Map映射
  12. 视觉Prompt新方法:超越所有微调方法,参数量大幅减少
  13. It was possible to detect the usage of the deprecated TLSv1.0 and/or TLSv1.1 protocol on this system
  14. 【项目实战】IPC摄像头在线状态ping检测与告警邮件发送项目总结
  15. 【BOOST C++字串专题11】Boost.Spirit(一)
  16. oracle 考试通过说考试作弊,这些行为很有可能会被判定为作弊!一定要小心!...
  17. 面试官:Vue3.0 性能提升主要是通过哪几方面体现的?
  18. CDH添加第三方服务的方法
  19. 本周大新闻|Meta AI部门重大重组,疑似Cambira CAD图曝光
  20. 软考高级-系统架构师-软件架构设计练习题

热门文章

  1. 第一次面试总结--中国电子科学研究院
  2. python字典默认排序_Python字典练习:设置默认获取排序,小,知识点,setdefaultgetsorted...
  3. 创建font_年底干货来了!图案创建、字体、图库、UI套件常见工具大合集!
  4. JavaSE基础——Map集合、 Collections(集合工具类)
  5. 基于SSM的购物商城系统(含文档)
  6. 基于Java的中华文化传播系统(含数据库文档)
  7. 基于springboot+vue的智慧教室预约系统(前后端分离)
  8. VS2010 C# 调用Web Service
  9. Git命令之查看及设置用户名邮箱
  10. 阶段3 2.Spring_08.面向切面编程 AOP_8 spring中的环绕通知