아, clojure 말고 lexical closure
꾸준글
프로그래밍 얘기:
(define (point x y)
(let ((x x)
(y y)
)
(define (get-x) x)
(define (get-y) y)
(define (add p)
(point
(+ x (send 'get-x p))
(+ y (send 'get-y p))))
(define (type-of) 'point)
(define (self msg)
(cond ((eq? msg 'get-x) get-x)
((eq? msg 'get-y) get-y)
((eq? msg 'add) add)
((eq? msg 'type-of) type-of)
(else (error "unknown message " msg))))
self))
똥글이