都是初学者,写了半天才写好,汗~~
练习1.3:
(define (max2 a b)
(cond ((> a b) a)
(else b)
)
)
(define (max3 a b c)
(cond
((> c (max2 a b)) c)
(else (max2 a b))
)
)
(define (maxsum a b c)
(cond
((= a (max3 a b c)) (+ a (max2 b c)))
((= b (max3 a b c)) (+ b (max2 a c)))
(else (+ c (max2 a b)))
)
)
运行结果:
> (maxsum 1 2 3)
5
> (maxsum 7 4 5)
12
> (maxsum 1.2 23 0.7)
24.2
等到我们学习到函数的时候再把这两个max函数组合到一起
练习1.7(求平方根)
(define (sqrt_ok nFrom nLastFrom)
(< (/ (abs (- nFrom nLastFrom)) nFrom) 0.00000001)
)
(define (avrage x y)
(/ (+ x y) 2)
)
(define (improve guess x)
(avrage guess (/ x guess))