[an error occurred while processing this directive]
(define (make-counter)
((lambda (count)
(lambda ()
(set! count (+ 1 count))
count))
0))
Draw the environment after:
(define counter (make-counter)) (counter)
(define (make-counter)
(let ((count 0))
(lambda (message)
(cond ((eq? message 'reset!) (set! count 0))
((eq? message 'next!) (set! count (+ 1 count)))
((eq? message 'current) count)
(else (error "Unrecognized message"))))))
What is an object?
Why is it useful to package state and procedures together?
[an error occurred while processing this directive]