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

Re: [Scheme-reports] libraries, cond-expand, begin, and expressions vs definitions



On Sun, Jan 6, 2013 at 4:45 AM, Andy Wingo <wingo@x> wrote:

First of all, the clauses of a `cond-expand' outside a define-library
form is specified as containing expressions.  This does not appear to be
the case: they seem to be able to contain definitions as well.

Indeed - this was a last-minute change.  We'll clarify it to state
that definitions are allowed in the non-library-declaration form.

Secondly, and more gravely, it seems that the `begin' _expression_ of the
`define-library' language can contains "commands or definitions"
(5.6.1).

This comes from formal syntax of "Programs and definitions".
We should clarify this since it's not otherwise made clear until chapter 7.

What is a "command"?  I will assume you mean "library
declaration", as mentioned later in the section.  I also assume that
`begin' can contain expressions.  So, the problem: allowing `begin' to
contain library declarations appears to break the "static" intent of the
define-library system.

No, we most certainly don't mean library declarations.
The later note that `begin' could include library declarations
was a terrible editorial mistake which many people have
pointed out and has long since been fixed.

The library system is STATIC.

You say "in general we don't do a great job of distinguishing
between expressions and definitions."  Was there a third
(or more) case?

-- 
Alex

_______________________________________________
Scheme-reports mailing list
Scheme-reports@x
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports