You might be interested in SRFI-41 <http://srfi.schemers.org/srfi-41/>. One of the examples is an infinite stream of fibonacci numbers.
On Wed, Feb 15, 2012 at 1:50 PM, Joe Gilray <jgil...@gmail.com> wrote: > Danny is correct... ouch (/.\ <- covering my head in shame). > > Anyway to close the chapter on this, below is the final result using > Danny's stream suggestions/code. I also have a non-streams version thanks > to Erik (and Stephen and Joshua). > > -Joe > > #lang racket > (require racket/sequence) > > ; a sequence function that creates an "infinite" sequence then turns that > into a stream that remembers its previous values as we walk across it. > ; invoke in a loop-expr (see below) > (define fib-stream > (let ([fib-sequence (in-producer (fib) 'donttellmecauseithurts)]) > (sequence->stream fib-sequence))) > > ; function to generate a list of all values in a stream < n > (define (stream-less-than-n n strm) > (let ([fib-val (stream-first strm)]) > (if (>= fib-val n) '() (cons fib-val (stream-less-than-n n > (stream-rest strm)))))) > > > On Wed, Feb 15, 2012 at 9:19 AM, Danny Yoo <d...@cs.wpi.edu> wrote: > >> On Wed, Feb 15, 2012 at 3:10 AM, Joe Gilray <jgil...@gmail.com> wrote: >> > The code that Danny wrote to create fib-stream works great with his >> > peek-fibs function, but I really don't understand stream-first. >> > >> > I wrote: >> > >> > ; function to use the fib-stream to generate a list of all fibs < n >> > (define (fib-stream-less-than-n n) >> > (let ([fib-val (stream-first fib-stream)]) >> > (if (>= fib-val n) '() (cons fib-val (fib-less-than-n n))))) >> ^^^^^^^^^^^^^^^^ >> >> Are you sure you mean to use fib-less-than-n here? >> > > > ____________________ > Racket Users list: > http://lists.racket-lang.org/users > >
____________________ Racket Users list: http://lists.racket-lang.org/users