[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] Draft 3 Comments: Chapter 5
Am 07.08.2011 07:10, schrieb John Cowan:
> Denis Washington scripsit:
>> "Some implementations of Scheme use an initial environment in which
>> all possible variables are bound to locations, most of which contain
>> undefined values. [...]" I am not sure if this is needed. I know,
>> it's from R5RS and not added to the draft, but this sounds more
>> like the old approach of a Scheme "report" in the original sense
>> (as in, observation of the state of the art) rather than its modern
>> interpretation as standards document.
> I think it's unavoidable. Currently, Racket, Gauch, MIT, Gambit,
> Scheme48/scsh, Guile, SISC, SCM, Ypsilon, STklos, SigScheme, Scheme 9
> complain about the attempt to set! an unbound variable, whereas Chicken,
> Kawa, Chibi, Chez, Ikarus, Larceny, Mosh do not. Getting all of either
> group to change would be too painful.
I didn't object to the content, but was thinking about the style. I just
meant that as a standard, the document doesn't benefit from this
paragraph as it doesn't specify anything (it is completely informal), so
it could as well be removed. However, if we would also like to keep the
notion of the document as a "report" - as in, a description of the
current state of Scheme implementations - it makes sense to keep the
sentence. I think there should just be a consent as to whether we want
that or not, to make things consistent. (Currently, there are sections
such as 2.1 which somewhat mix "prescriptive" and "descriptive"
statements, without clearly drawing a line between the two.)
>> The added paragraph regarding ambiguous definitions is very, very hard
>> to understand; the sentences are not particularly well digestible. But
>> I admit that it is very hard to explain. ;) A proposal:
>> "Macros may expand into (syntax) definitions in any context that
>> permits them. However, it is an error for a (syntax) definition to
>> define an identifier whose binding must be known to determine the
>> meaning of the definition itself, or of any preceding definition that
>> belongs to the same group of internal definitions. Similarly, it is
>> an error for an internal definition to define an identifier whose
>> binding must be known to determine the boundary between the internal
>> definitions and the expressions of the<body> it belongs to. For
>> example, the following are
> I'm not completely happy with this, but I've adopted it as an
> improvement on what we had.
Neither am I, but I am happy that I could help.
>> As section 5.5 has no other subsection than 5.5, it would seem to make
>> sense to just put all of 5.5.1 into 5.5 directly.
> There is also 5.5.2 Module Examples.
Well, no other part of the report uses an extra section for examples, so
pulling everything into 5.5 would increase consistency.
>> That's it for this chapter.
As always, I sincerely hope that my
>> comments are helpful for you.
> They are!
Great to hear. :)
Scheme-reports mailing list