UNB/ CS/ David Bremner/ teaching/ cs4613/ lectures/ lecture15/ counter3.rkt
#lang racket
(require racket/generator)

(define nats
  (generator ()
      (let ([n 0])
        (define (nat-loop)
          (yield  n)
          (set! n (add1 n))
          (cons (nat-loop) empty))
        (nat-loop))))

(nats) (nats) (nats) (nats) (nats) (nats)