[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: First impressions of the specification

This page is part of the web mail archives of SRFI 110 from before July 7th, 2015. The new archives for SRFI 110 contain all messages, not just those from before July 7th, 2015.

"David A. Wheeler" <dwheeler@xxxxxxxxxxxx> writes:

> Mark H Weaver:
>> I think this new draft is very promising.  However, there's still one
>> major piece missing: a description (in english) of what data structures
>> are created.  Somehow that needs to be integrated into this new text.
> I'm not sure I understand.  If by "data structure" you mean
> n-expressions, those are already defined in SRFI-105.
> It's really just s-expressions with a few tweaks.

By "data structure", I mean the object returned by the reader after
reading a sweet expression.  In your new "Basic specification", there's
lots of detail about how the input is parsed (good), but almost no
discussion of how those pieces are put together into lists.  That's
what's missing, IMO.

>> * Re: "leading traditional abbreviation (quote, comma, backquote, or
>>   comma-at)": IMO, for readers that support the syntax-case
>>   abbreviations (#' #` #, #,@), I think that it ought to be _mandatory_
>>   for these to be handled in the same way as for (' ` , ,@).
> I disagree. Many Scheme systems do not implement them or
> implement some of these with very different semantics.
> For example, the many Schemes that implement SRFI-10
> do something completely different with "#,".
> They've also been abandoned in R7RS.

That's why I said it ought to be mandatory "for readers that support the
syntax-case abbreviations".  This is analogous to SRFI-105 requiring
that {#1=f(#1#)} be read as #1=(f #1#) if there is support for SRFI-38.

If it's not required, then authors will not be able to safely use the
syntax-case abbreviations with SRFI-110 syntax, even on implementations
that support both SRFI-110 and syntax-case.  Syntax-case is a de-facto
standard in the Scheme world now, and extremely widely supported and
used.  It is required by the R6RS and very likely to be in R7RS-large as
well.  It would be a shame to not support it properly.