SICP exercise 2.4 added by wasamasa on Sat Apr 15 16:11:12 2017

(use test)

;; ex 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)))

(test 1 (car (cons 1 2))) ; fails
(test 2 (cdr (cons 1 2))) ; fails

;; (cdr (cons 1 2))
;; (cdr (lambda (m) (m 1 2)))
;; ((lambda (m) (m 1 2)) (lambda (p q) q))
;; ((lambda (p q) q) 1 2)
;; 2