On Fri, Nov 23, 2012 at 10:38 AM, Shiro Kawai <[email protected]> wrote:

> +1 for your reasoning.  I feel the current wording is just a slip in order
> to tell 'display' should handle cyclic structures.   Lazy infinite list is
> out of domain of r7rs, so what would happen when such structure
> is given should be left unspecified.   Gauche already has auto-forcing
> lazy lists, so I cannot help but making display run infinitely...
>
> If it is indeed the intention of the standard, can it be fixed by small
> editing? e.g. "However, display must always terminate even when the
> obj contains cycles"?


I think we could re-word this to say the termination
applies to cyclic data-structures, not necessarily
lazy infinite data structures.

Display is overly vague with respect to non-char/string
objects anyway, so you have a lot of leeway already.

-- 
Alex


>
> On Thu, Nov 22, 2012 at 1:49 PM, Per Bothner <[email protected]> wrote:
> > The specification for display is:
> >
> >    However, display must always terminate. Thus if the nor-
> >    mal write representation is used, datum labels are needed
> >    to represent cycles as in write.
> >
> > I think this is wrong, and (arguably) misunderstands what
> > display is about, which IMO is to produce plain unadorned
> > human-readable output without extra delimiters.  Infinite
> > data structures *should* produce infinite output.  Many
> > programs are intended to run "indefinitely", and so any
> > attempt to prohibit unbounded output is misguided.
> >
> > Consider for example an extension with infinite lists or strings,
> > with automatic forcing.  The semantics of such a string is like
> > a regular string, but of unbounded length, with characters
> > calculated as needed.  In that case the "correct" implementation
> > of display is to display each chunk of text as it becomes available.
> >
> > I.e. an infinite lazy data-structure should produce infinite
> > output - and therefore an infinite non-lazy cyclic data-structure
> > should produce infinite output, for consistency.
> >
> > I will not implement this rule in Kawa (unless I get around to
> > doing at as part of a "pedantic" mode), as it conflicts with
> > my conception of how to handle laziness.
> > --
> >         --Per Bothner
> > [email protected]   http://per.bothner.com/
> >
> > _______________________________________________
> > Scheme-reports mailing list
> > [email protected]
> > http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
>
> _______________________________________________
> Scheme-reports mailing list
> [email protected]
> http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
>
_______________________________________________
Scheme-reports mailing list
[email protected]
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports

Reply via email to