summaryrefslogtreecommitdiff
path: root/coding-exercises/2/5.rkt
blob: 311d6f538153137743fa041a4eea1354fede4666 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#lang racket
(require sicp)
(require "chapter1.rkt")

(define (cons a b)
  (* (power 2 a) (power 3 b)))

(define (cdr i)
  (define (iter n x)
    (if (divides? 3 n)
      (iter (/ n 3) (inc x))
      x))
  (iter i 0))

(define (car i)
  (define (iter n x)
    (if (divides? 2 n)
      (iter (/ n 2) (inc x))
      x))
  (iter i 0))


(define test-cons (cons 5 7))
(cdr test-cons)
(car test-cons)