streams in racket
Can anyone help me better understand how to write a stream? I understand that a stream is an infinite sequence of values and the way I have learned programming them is a representing them as a thunk that when called produces a pair of (1) the first element in the sequence and (2) a thunk that represents the stream for the second-through-infinity elements For example: (define powers-of-two (letrec ([f (lambda (x) (cons x (lambda () (f (* x 2)))))]) (lambda () (f 2)))) I understand here that it is just producing a powers of two and to access these for example calling (car (powers-of-two)) would