sicp习题试解 (2.7)

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

; ======================================================================

;

; Structure and Interpretation of Computer Programs

; (trial answer to excercises)

;

; 计算机程序的构造和解释(习题试解)

;

; created: code17 04/25/05

; modified:

; (保持内容完整不变前提下,可以任意转载)

; ======================================================================

;; SICP No.2.7

(define (make-interval a b) (cons a b))

;; 因为课本中的make-interval定义没有限制前后两个数的大小关系

;; 因此在定义selector: upper-bound和lower-bound时必须进行两个数的大小比较

(define (upper-bound c)

(max (car c) (cdr c)))

(define (lower-bound c)

(min (car c) (cdr c)))

;; 另一方面,如果make-interval的输入可以是无序的话,那么在定义除法的时候

;; 课本也就没有必要强调将(/ 1.0 (upper-bound y))前置;但如果make-inteval

;; 的输入必须有序的话,在定义make-interval时,就应该进行大小比较的检查,而

;; 这里没有。因此,课本的定义在此处有一些细节上的疏忽。在后面的习题中,我们

;; 依然按照先后大小次序提供make-interval的参数,尽管根据我们本题的答案,这

;; 并不是必要的。

;; Test-it:

;; Welcome to MzScheme version 209, Copyright (c) 2004 PLT Scheme, Inc.

;; > (define test1 (make-interval 3 5))

;; > (upper-bound test1)

;; 5

;; > (lower-bound test1)

;; 3

;; > (define test2 (make-interval 8 1))

;; > (upper-bound test2)

;; 8

;; > (lower-bound test1)

;; 3

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有