SICP学习笔记 - 第二章 (2.1)
2012-11-03 23:09
225 查看
基本过程:
部分习题:
exercise 2.1
exercise 2.2
exercise 2.4
exercise 2.5
exercise 2.7
假定 make-interval 的两个参数由小到大排列。
exercise 2.8
(cons n d) (car x) (cdr x)
部分习题:
exercise 2.1
(define (make-rat n d) (let ((g (gcd n d))) (if (negative? (* n d)) (cons (- (abs (/ n g))) (abs (/ d g))) (cons (abs (/ n g)) (abs (/ d g))))))
exercise 2.2
(define (average x y) (/ (+ x y) 2)) (define (make-point x y) (cons x y)) (define (x-point p) (car p)) (define (x-point p) (cdr p)) (define (make-segment start end) (cons start end)) (define (start-segment segment) (car segment)) (define (end-segment segment) (cdr segment)) (define (midpoint-segment segment) (let ((start-point (start-segment segment)) (end-point (end-segment segment))) (cons (average (x-point start-point) (x-point end-point)) (average (y-point start-point) (y-point end-point)))))
exercise 2.4
(define (cdr z) (z (lambda (p q) q))) ;代换模型 (cdr (cons x y)) ((lambda (m) (m x y)) (lambda (p q) q)) ((lambda (p q) q) (x y)) y
exercise 2.5
(define (cons x y) (define (dispatch m) (cond ((= m 0) x) ((= m 1) y) (else (* (expt 2 x) (expt 3 y))))) (dispatch)) (define (car z) (z 0)) (define (cdr z) (z 1))
exercise 2.7
假定 make-interval 的两个参数由小到大排列。
(define (upper-bound interval) (cdr interval)) (define (lower-bound interval) (car interval))
exercise 2.8
(define (sub-interval x y) (let ((xl (lower-bound x)) (xu (upper-bound x)) (yl (lower-bound y)) (yu (upper-bound y))) (make-interval (- (min xl yl) (max xl yl)) (- (max xu yu) (min xu yu)))))
相关文章推荐
- SICP学习笔记 - 第二章 (2.2)(下)
- SICP学习笔记 - 第二章 (2.2)(上)
- SICP第二章学习笔记
- SICP第二章学习笔记
- SICP学习笔记 - 第二章 (2.4)
- SICP学习笔记 - 第二章 (2.3)
- 正则表达式 学习笔记2.1
- Linux第一章第二章学习笔记
- ArcGIS API for JavaScript 4.2学习笔记[4] 第二章其余感兴趣的例子
- 计算广告学习笔记2.1 合约广告系统-常见广告系统开源工具
- 【转】ArcGIS API for Silverlight/WPF 2.1学习笔记(五)
- C++程序设计(第二版)第二章学习笔记
- C++学习笔记之第二章:常量和变量
- 【学习笔记】《如何构建敏捷项目管理团队》第二章 追求高绩效
- 汇编语言学习笔记第二章 寄存器
- Android2.1消息应用(Messaging)源码学习笔记
- 【Intel AF 2.1 学习笔记三】
- C++的学习笔记(第二章:基本数据类型与表达式)
- extJs 2.1学习笔记(Ext.data.Connection篇二)