пятница, 7 января 2011 г.

Exercise-3-01

Упражнение 3.1.
Накопитель (accumulator) — это процедура, которая вызывается с одним численным аргументом и собирает свои аргументы в сумму. При каждом вызове накопитель возвращает сумму, которую успел накопить. Напишите процедуру make-accumulator, порождающую накопители, каждый из которых поддерживает свою отдельную сумму. Входной параметр make-accumulator должен
указывать начальное значение суммы; например,

(define A (make-accumulator 5))
(A 10)
15
(A 10)
25

создадим такую функцию

(define (make-accumulator balance)
  (λ (amount)
    (begin
      (set! balance (+ balance amount))
      balance)))

make-accumulator создает функцию с счетчиком равным balance и возвращает ее.
Функция от одного аргумента amount добавляет аргумент к результату и возвращает результат.

Комментариев нет:

Отправить комментарий