;; ------------------------------------------------------------------------- ;; an example using a Racket generator to create an infinite list ;; ------------------------------------------------------------------------- #lang racket (require racket/generator) (define squares (generator () (letrec ((loop (lambda (n) (yield (* n n)) (loop (add1 n))))) (loop 1)))) ;; > (squares) ;; 1 ;; > (squares) ;; 4 ;; > (squares) ;; 9 ;; > (squares) ;; ... ;; -------------------------------------------------------------------------