- (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.
 
     
     
     
     
    