かっこの中は別世界

ちょっと混乱するわ

;;; q2.4
(define (cons x y)
  (lambda (m) (m x y))) ;手続きを引数
(define (car z)
  (z (lambda (p q) p))) ;手続きzにlambda手続きを渡す
(define (cdr z)
  (z (lambda (p q) q)))

(define a (cons 1 2))
;;=>lam (a) (a 1 2)
(car a)
;;=>(car (cons 1 2))
;;=>(car (lambda (m) (m 1 2))) ;この形でキックする事になると。
;;carは上の手続きをzに埋め込んで 自身のlambdaを走らせるので
;;((lambda (m) (m 1 2)) ;手続きを待ってる
;;      (lambda (p q)) p)) ;手続き
;;こうなる
;;((lambda (p q) p) 1 2 )
;;=>1
;;;かっこの中は別世界