<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16608" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Download my PLT implementation of Phil Bewig's
SRFI-41 form the following link.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>
<DIV><FONT face=Arial size=2><A
href="http://www.telefonica.net/web2/koot/zipped-streams.zip">http://www.telefonica.net/web2/koot/zipped-streams.zip</A></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>At Phil's request, the code
has been modified as little as possible.</FONT></DIV>
<DIV><FONT face=Arial size=2>The included tests, leak tests included, run
well on DrScheme, version 3.99.0.12-svn14feb2008 [3m].</FONT></DIV>
<DIV><FONT face=Arial size=2>Documentation is included in msword (doc) and html
format (without having been touched by me) </FONT></DIV>
<DIV><FONT face=Arial size=2>Docs have not yet been scribled (I am not much of a
scribbler, I'm afraid)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Especially for Matthew Flatt:</FONT></DIV>
<DIV><FONT face=Arial size=2>Thanks for fixing <FONT face="Times New Roman"
size=3> </FONT><A
href="http://bugs.plt-scheme.org/query/?cmd=view&pr=8963"
target=_blank><FONT face="Times New Roman"
size=3>http://bugs.plt-scheme.org/query/?cmd=view&pr=8963</FONT></A>.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Especially for Eli Barzilay</FONT></DIV>
<DIV><FONT face=Arial size=2>Initially I thought native PLT promises could be
used.</FONT></DIV>
<DIV><FONT face=Arial size=2>Nevertheless the code includes its own code
for van Tonder promises (SRFI 45)</FONT></DIV>
<DIV><FONT face=Arial size=2>For two reasons:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>1: there is still a problem with
the van Tonder promises as now implemented in PLT Scheme.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>2: streams must be a distinct
type, for they must not be confused with promises as delivered by syntaxes delay
and lazy.</FONT></DIV>
<DIV><FONT face=Arial size=2>Otherwise we would get in trouble with
something like: </FONT><FONT face=Arial size=2>(stream 1 (delay 1) (lazy (delay
1)))</FONT></DIV>
<DIV><FONT face=Arial size=2>There is no such thing as
'make-promise-type'.</FONT></DIV>
<DIV><FONT face=Arial size=2>An alternative would be to wrap PLT's promises in a
struct-type, but I find this extra layer not attractive.</FONT></DIV>
<DIV><FONT face=Arial size=2>As they are now, the streams are already slow
enough.</FONT></DIV>
<DIV><FONT face=Arial size=2>The implementation of the van Tonder promises is as
simple as possible (in fact copied from SRFI 45)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I suggested to Phil Bewig several ways of improving
the performance, some of which he copied.</FONT></DIV>
<DIV><FONT face=Arial size=2>However, with respect to many other
suggestions Phil Bewig asked me with some force to keep as close to his
code as possible. So I did.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>When PLT R6RS arrives, it will be little work to
adapt the code or may be just copy the R6RS version as already prepared by Phil
Bewig.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Of course I am available in case of problems, bugs,
questions, and so on.</FONT></DIV>
<DIV><FONT face=Arial size=2>I am sure the same holds for Phil
Bewig.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Kind regards,</FONT></DIV>
<DIV><FONT face=Arial size=2>Jos Koot</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>(define-syntax expose-stream-lazy (syntax-rules ( )
((_ expr) ((stream-lambda ( ) expr))))) ;)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV></BODY></HTML>