(define some-static (let ((counter 0)) (lambda (x) (set! counter (+ counter x)) counter))) (some-static 0) => 0 (some-static 1) => 1 (some-static 3) => 4 (some-static 5) => 9 (some-static 7) => 16 (some-static 9) => 25
This is very similar to the simple-iterators idiom or a simple-object idiom.