关闭

练习2.4 2.5

标签: sicp
130人阅读 评论(0) 收藏 举报
分类:
#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)

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6861次
    • 积分:720
    • 等级:
    • 排名:千里之外
    • 原创:35篇
    • 转载:7篇
    • 译文:27篇
    • 评论:0条