Thanks Danny,<div><br></div><div>Now I can use the original recursive formulation:</div><div><br></div><div><div>; function to use the fib-stream to generate a list of all fibs &lt; n</div><div>(define (fib-stream-less-than-n n)</div>
<div>  (let ([fib-val (stream-first fib-stream)])</div><div>    (if (&gt;= fib-val n) &#39;() (cons fib-val (fib-less-than-n n)))))</div><div><br></div><div>I&#39;ve learned a lot tonight.  I have been reading the manuals, but they are hard to get your arms around when you are just starting out. Also it would be great if the manuals had more and longer examples.  Have anyone looked into doing a Racket &quot;cookbook&quot;?</div>
<div><br></div><div>Thanks again,</div><div>-Joe</div><br><div class="gmail_quote">On Mon, Feb 13, 2012 at 9:55 PM, Danny Yoo <span dir="ltr">&lt;<a href="mailto:dyoo@cs.wpi.edu">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 class="im">On Tue, Feb 14, 2012 at 12:32 AM, Joe Gilray &lt;<a href="mailto:jgilray@gmail.com">jgilray@gmail.com</a>&gt; wrote:<br>
&gt; Danny,<br>
&gt;<br>
&gt; Thanks for the explanations.  These are powerful ideas.  It appears not to<br>
&gt; generate the sequence until needed, very nice.<br>
&gt;<br>
&gt; How could I modify this to do the &quot;less than n&quot; idea?<br>
<br>
<br>
</div>A stream is a sequence, and also has a few more functions that act<br>
very much like the familiar list-oriented functions.<br>
<br>
    <a href="http://docs.racket-lang.org/reference/streams.html#(tech._stream)" target="_blank">http://docs.racket-lang.org/reference/streams.html#(tech._stream)</a><br>
<br>
So you could use stream-first and stream-rest on the fib-stream, as if<br>
you had entire fibonacci sequence in front of you as an infinite list.<br>
 Just don&#39;t try to stream-&gt;list it.<br>
</blockquote></div><br></div>