1 (define (test-case actual expected)
11 (cond ((null? x) false)
12 ((eq? item (car x)) x)
13 (else (memq item (cdr x)))))
25 (and (equal? (car a) (car b))
26 (equal? (cdr a) (cdr b))))
29 (test-case (equal? 4 4) #t)
30 (test-case (equal? 4 0) #f)
31 (test-case (equal? 4 '()) #f)
32 (test-case (equal? '() 4) #f)
33 (test-case (equal? '() '()) #t)
34 (test-case (equal? '(4) '()) #f)
35 (test-case (equal? '((4) (3)) '((4 3))) #f)
36 (test-case (equal? '((4) (3)) '((4) (3))) #t)
37 (test-case (equal? '((4) (3)) '((4) (2))) #f)
38 (test-case (equal? '(4 3 2) '(4 3 2 5)) #f)
40 ;; Exercise 2.55. Eva Lu Ator types to the interpreter the expression
44 ;; To her surprise, the interpreter prints back quote. Explain.
46 (car '(quote abracadabra))
47 (car (list quote abracadabra))
48 ;; ''abracadabra is actually (quote (quote abracadabra)), which is the same as '(quote abracadabra). The interpreter sees the symbol quote as the first element in a two-element list.