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

Re: More semantics



> - I am unable to figure out what this means from the context:
>
>    "... and the marks match if the marks recorded
>    with the substitution are the same as those that
>    appear below, i.e., were applied before the substitution in the wrap."

The wording isn't great.  Does the following help?

  "... and the marks match if the marks recorded with the substitution
  are the same as those that appear below the substitution in the wrap,
  i.e., those that were applied before the substitution.

The idea is that substitutions are affected by the marks that are present
when the substitution is applied.

> - Does the SRFI specify how the bound identifiers in macro-generated
>    DEFINEs are treated?  Some current implementations make them
>    secret, others not.  This is one of Oleg's "dark unspecified corners".

No distinction is made between definitions and other bindings for
introduced identifiers, so if the definition binds an introduced
identifier, it is "secret", just as with any other binding for an
introduced identifier.  I believe this was also the case in R5RS, for
local definitions.  The SRFI doesn't say anything about top-level
definitions, which probably won't exist in R6RS.

> - I'm not sure how the following is supposed to be treated:
>
>    (define else #f)
>    (case 0 (else (write "oops")))
>
>    Will it lead to a syntax error the same way as:
>
>    (let ([else #f])
>      (case 0 [else (write "oops")]))

If the define and case appear in some local scope, yes.  Again, the SRFI
says nothing about top-level definitions.

> - Erratum:  In the following, the last occurrence of "datum" shold be
>              "template-id".
>
>    "It returns a syntax object representation of datum that contains the same
>     contextual information as template-id, with the
>     effect that the syntax object behaves as if it were introduced into the code
>     when datum was introduced."

Thanks.

Kent