SICP 연습문제 3.1 친절한 풀이

문제

어큐뮤레이터란 여러 수를 차례대로 이어 받아서 합을 내는 프로시저인데, 이 프로시저를 돌리면 그때까지 받은 인자 값을 모두 더한 값이 나온다고 하자. 새 어큐뮬레이터를 찍어내는 프로시저 make-accumulator를 정의하라. 단, 어큐뮬레이터마다 더한 값을 따로 들게 해야 한다. make-accumulator는 인자로 첫 값을 받는다 아래는 그 사례다.

(define A (make-accumulator 5))

(A 10)

(A 10)

문제로 부터 얻은 것

가볍게 set!을 이용한 상태변수 활용을 연습해볼 수 있는 문제였습니다.

문제풀이

(define (make-accumulator base)
(lambda (amount)
(begin (set! base (+ base amount))
base)))