(define f (let ((value 0)) (lambda (x) (let ((old-value value)) (set! value x) old-value)))) ; 1 ]=> (f 0) ; ; ;Value: 0 ; ; 1 ]=> (f 1) ; ; ;Value: 0 ; ; 1 ]=> (f 0) ; ; ;Value: 1 ; ; 1 ]=> (f 1) ; ; ;Value: 0 ; ; 1 ]=> (f 0) ; ; ;Value: 1 ; ; 1 ]=> (f 0) ; ; ;Value: 0 ; ; 1 ]=> (+ (f 0) (f 1)) ; ; ;Value: 1