计算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))
本文介绍了一种通过递归算法实现的计算cos-b的结果和从一个特定数值中提取a和b的方法。利用定义好的cons-b、car-b和cdr-b函数,通过不断除以2和3来获取a和b的值。
4826

被折叠的 条评论
为什么被折叠?



