(define self-add (let ((x 0)) (lambda () (set! x (+ x 1)) x)))
(self-add) => 1
(self-add) => 2
(self-add) => 3
(self-add) => 4
-
2.
(define self-add1
(lambda ()
(let ((x 0))
(set! x (+ x 1))
x)))
(self-add1) => 1
(self-add1) => 1
(self-add1) => 1
Please tell me how to understand the difference between the above two functions? Thanks a lot in advance! Best regards.