On Wed, Jun 27, 2012 at 11:58 AM, Richard Kelsey <[email protected]> wrote: > Formal Comment > > Submitter's name: Richard Kelsey > Submitter's email: kelsey at s48.org > Relevant draft: r7rs draft 6 > > Type: clarification > Priority: minor > Relevant section of draft: Derived expression types > > Summary: 'lazy' is underspecified > > The description of (lazy <expression>) says > > The returned promise, when forced, will evaluate to whatever the > original promise would have evaluated to if it had been forced. > > This describes what > > (delay (force <expression>)) > > does. On the other hand, the description of the stream-filter example > says that '(lazy <x>)' is not the same as '(delay (force <x>))'. If > this is true, the description of 'lazy' needs to say what the > difference is.
Thanks! This had already been fixed in the repository and currently reads: The expression (delay-force expression) is conceptually similar to (delay (force expression)), with the difference that forcing the result of delay-force will in effect result in a tail call to (force expression), while forcing the result of (delay (force expression)) may not. Thus iterative lazy algorithms that may result in a long series of chains of delay and force can be rewritten using delay-force to prevent consuming unbounded space during evaluation. (where lazy has been renamed delay-force). -- Alex _______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
