On Sun, Jan 6, 2013 at 6:19 AM, Andy Wingo <[email protected]> wrote: > I would encourage readers to take a look at section 5, as it is _the_ > new section of the R7RS, and as such deserves a closer look. It's only > a few pages long. Print the pages out and enjoy them over coffee. > > I think the division of valid kinds of declarations as "variable > definitions, syntax definitions, or record-type definitions" is pretty > nasty.
FWIW I agree - maybe we can revert this, but it's just ugly not a bug in the specification. > The typesetting of the "rename" kind of import declaration would benefit > by a newline after <import set 1>. > Done. > In the paragraph Marc mentioned: > > In a program or library declaration, it is an error to import the > same identifier more than once with different bindings, or to > redefine or mutate an imported binding with a definition or with > set!, or to refer to an identifier before it is imported. > > How does one refer to an identifier before it is imported? > (define-library (foo) (begin (bar)) (import (only (bar) bar))) I wanted to require all imports initially before any scheme, but in the end we allowed shuffling, and implementations are allowed but not required to perform the imports before any code. In 5.3.1, I think introducing `define' as `set!' is pretty wrong. I > would reverse the order of the presentation and treat the > existing-binding case as special. > This is unchanged from R5RS. Most of the document is unchanged from R5RS. > In 5.3.2, it says: > > An expanded body containing internal definitions (but not syntax > definitions or record definitions) can always be converted into a > completely equivalent letrec* expression. > > The parenthetical statement is unnecessary, as an expanded body has no > syntax definitions. > Indeed, removed. > Also it's not true, unfortunately! Because in the next section, "5.3.3 > Multiple-value definitions", we see the introduction of `define-values' > with an optimistically short specification and no corresponding > expansion. Define-values is just derived syntax, it doesn't need special treatment. > I think you _cannot_ introduce define-values without > `letrec-values' and `letrec*-values' and corresponding semantics I disagree. I'd love to remove all three though. > Finally, in 5.5, the lack of specification of whether the > record-type-descriptor is a syntactic or value binding is unfortunate, I > think. But OK! > This is consistent with SRFI-9 from which the form is taken. -- Alex
_______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
