; ====================================================================== ; ; Structure and Interpretation of Computer Programs ; (trial answer to excercises) ; ; 计算机程序的构造和解释(习题试解) ; ; created: code17 04/23/05 ; modified: ; (保持内容完整不变前提下,可以任意转载) ; ======================================================================
;; SICP No.2.5
;; 因为2和3互质,2^a * 3^b的结果可以完整保存a和b的信息,因此
(define (cons a b) (* (expt 2 a) (expt 3 b)))
(define (fact-n x c a) (if (> (remainder x c) 0) a (fact-n (/ x c) c (+ a 1))))
(define (car z) (fact-n z 2 0)) (define (cdr z) (fact-n z 3 0))
;; Test-it: ;; Welcome to MzScheme version 209, Copyright (c) 2004 PLT Scheme, Inc. ;; > (car (cons 3 6)) ;; 3 ;; > (cdr (cons 3 6)) ;; 6

|