;double的功能是2*n (define (double n) (+ n n)) (double 5) ;havle-iter函数的功能是通过迭代获得n的一半的值,guess是初始猜测值 (define (havle-iter guess n) (cond ((not (integer? n)) (display "error: 原因havle函数的参数是整数\n")) (( and (< (double guess) n) (<= (double (+ guess 1)) n)) (havle-iter (+ 1 guess) n)) (( and (> (double guess) n)) (havle-iter (- guess 1) n)) (( and (< (double guess) n) (> (double (+ guess 1)) n)) (+ guess 0.5)) ((= (double guess) n) guess))) ;havle函数的功能是通过迭代获得n的一半的值,guess是初始猜测值是1 (define (halve n) (havle-iter 1 n)) (halve 16) (halve 37) (halve 35.5) ;even?函数功能是判断n是否是偶数,如果是偶数值为#t,否则为#f (define (even? n) (cond ((= n 0) #t) ((= n 1) #f) ((and (integer? n) (< n 0)) (even? (+ n 2))) ((and (integer? n) (> n 1)) (even? (- n 2))) (else #f))) (even? 13) (even? 22) (even? 22.5) ;*函数的功能是a乘以b (define (* a b) (cond ((or (= a 0) (= b 0)) 0) ((= a 1) b) ((even? a) (* (halve a) (double b))) (else (+ (* (- a 1) (- b 1)) a b -1)))) (* 3 4)