计算cos-b的结果就是 2a3b 的数值
(car-b z)就是将z不断除2,就可以得到a,同理可以得到b
因为2,3互质,所有整除的时候不会影响
(define cons-b
(lambda (x y)
(cond ((and (> x 0) (> y 0)) (* 6 (cons-b (- x 1) (- y 1))))
((> x 0) (* 2 (cons-b (- x 1) y)))
((> y 0) (* 3 (cons-b x (- y 1))))
(else 1))))
(define car-b
(lambda (x)
(if (= (remainder x 2) 0) (+ 1 (car-b (/ x 2))) 0)))
(define cdr-b
(lambda (x)
(if (= (remainder x 3) 0) (+ 1 (cdr-b (/ x 3))) 0)))
(define z (cons-b 3 2))
(newline)
(display (car-b z))
(newline)
(display (cdr-b z))