Danny,<div><br></div><div>Thanks for the explanations.  These are powerful ideas.  It appears not to generate the sequence until needed, very nice.</div><div><br></div><div>How could I modify this to do the &quot;less than n&quot; idea?</div>
<div><br></div><div>-joe<br><br><div class="gmail_quote">On Mon, Feb 13, 2012 at 9:20 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">&gt;  (let ([fib-sequence (in-producer fib &#39;donttellmecauseithurts)])<br>
<br>
</div>I realize that I forgot to add explanation.<br>
<br>
This line creates a &quot;sequence&quot; by repeatedly calling your fib<br>
function. in-producer will continue to call fib until it sees the<br>
second argument.  But since the fibonacci numbers don&#39;t end, I want to<br>
tell in-producer to go on forever, so I passed it something that fib<br>
won&#39;t ever produce.<br>
<br>
... and It&#39;s from a song by the music group No Doubt.  Why?  Dunno.<br>
Valentine&#39;s Day brought it to mind for some reason.  :)<br>
<br>
<br>
The second part:<br>
<div class="im"><br>
  ;; Let&#39;s wrap it and turn it into a stream that remembers...<br>
   (sequence-&gt;stream fib-sequence)<br>
<br>
</div>turns the sequence into another sequence.  But this one will remember<br>
its previous values as we walk across it.<br>
<br>
<br>
So when we do start walking the streamified sequence, we can do that<br>
repeatedly without losing the old values.<br>
</blockquote></div><br></div>