You might be interested in <a href="http://srfi.schemers.org/srfi-41/">SRFI-41</a>. One of the examples is an infinite stream of fibonacci numbers.<br><br><div class="gmail_quote">On Wed, Feb 15, 2012 at 1:50 PM, Joe Gilray <span dir="ltr">&lt;<a href="mailto:jgilray@gmail.com">jgilray@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Danny is correct... ouch (/.\ &lt;- covering my head in shame).<div><br></div><div>Anyway to close the chapter on this, below is the final result using Danny&#39;s stream suggestions/code.  I also have a non-streams version thanks to Erik (and Stephen and Joshua).</div>

<div><br></div><div>-Joe</div><div><br></div><div><div>#lang racket</div><div>(require racket/sequence)</div><div><br></div><div><div>; a sequence function that creates an &quot;infinite&quot; sequence then turns that into a stream that remembers its previous values as we walk across it.</div>

<div>; invoke in a loop-expr (see below)</div><div>(define fib-stream</div><div>  (let ([fib-sequence (in-producer (fib) &#39;donttellmecauseithurts)])</div><div>    (sequence-&gt;stream fib-sequence)))</div><div><br></div>

<div>; function to generate a list of all values in a stream &lt; n</div><div>(define (stream-less-than-n n strm)</div><div>  (let ([fib-val (stream-first strm)])</div><div>    (if (&gt;= fib-val n) &#39;() (cons fib-val (stream-less-than-n n (stream-rest strm))))))</div>

</div><div class="im"><div><br></div><br><div class="gmail_quote">On Wed, Feb 15, 2012 at 9:19 AM, Danny Yoo <span dir="ltr">&lt;<a href="mailto:dyoo@cs.wpi.edu" target="_blank">dyoo@cs.wpi.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>On Wed, Feb 15, 2012 at 3:10 AM, Joe Gilray &lt;<a href="mailto:jgilray@gmail.com" target="_blank">jgilray@gmail.com</a>&gt; wrote:<br>
&gt; The code that Danny wrote to create fib-stream works great with his<br>
&gt; peek-fibs function, but I really don&#39;t understand stream-first.<br>
&gt;<br>
&gt; I wrote:<br>
&gt;<br>
&gt; ; function to use the fib-stream to generate a list of all fibs &lt; n<br>
&gt; (define (fib-stream-less-than-n n)<br>
&gt;   (let ([fib-val (stream-first fib-stream)])<br>
&gt;     (if (&gt;= fib-val n) &#39;() (cons fib-val (fib-less-than-n n)))))<br>
</div>                                                   ^^^^^^^^^^^^^^^^<br>
<br>
Are you sure you mean to use fib-less-than-n here?<br>
</blockquote></div><br></div></div>
<br>____________________<br>
  Racket Users list:<br>
  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
<br></blockquote></div><br>