您的位置:首页 > 其它

练习2.4 2.5

2016-05-31 18:05 246 查看
#lang racket
#|
;: 练习2.4
(define (cons x y)
(lambda (m) (m x y)))

(define (car z)
(z (lambda (p q) p)))

(define (cdr z)
(z (lambda (p q) q)))

(define z (cons 'a 'b))
z
(car z)
(cdr z)

|#

;: 练习 2.5
(define (cons a b)
(* (expt 2 a)
(expt 3 b)))
;:
(define (car z)
(if (= 0 (remainder z 2)) ;: 整除则+1
(+ 1 (car (/ z 2)))
0))
;:
(define (cdr z)
(if (= 0 (remainder z 3))
(+ 1 (cdr (/ z 3)))
0))
;: 测试
(define z (cons 9 8))
(car z)
(cdr z)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sicp