функции схемы, которые «запоминают» значения с помощью let/set

Я новичок в Scheme и пытаюсь понять, как определенные значения, появляющиеся в функции, могут сохраняться при многократном использовании. следующий счетчик:

(define count
   (let ((next 0))
     (lambda ()
       (let ((v next))
         (set! next (+ next 1))
         v))))

Что я не могу понять (и нигде не нашел объяснения), так это почему nextне сбрасывается в 0 каждый раз, когда countиспользуется .

5
задан AstroCB 17 February 2015 в 01:52
поделиться