[r6rs-discuss] [Formal] (r6rs base) must also export _ and ... at level 1
On Thu, 25 Jan 2007, Abdulaziz Ghuloum wrote:
> On Jan 24, 2007, at 7:38 AM, AndrevanTonder wrote:
>
>> On Wed, 24 Jan 2007, Abdulaziz Ghuloum wrote:
>>
>>> Andre van Tonder wrote:
>>>
>>>> It is stated on p.25 that (r6rs base) exports syntax-rules and
>>>> identifier-syntax at level 1. This is insufficient for writing most
>>>> useful macros unless the identifiers ... and _ are also exported for
>>>> level 1.
>>> Three questions:
>>> 1. Why would this be necessary?
>>
>> If they are not exported, how would you propose to handle renaming,
>> prefixing, or excepting them in a client library?
>
> Your statement originally said that exporting syntax-rules and
> identifier-syntax at level 1 is "insufficient for writing most useful macros
> unless the identifiers ... and _ are also exported for level 1". My
> question was about that statement. I don't see how exporting ... and _ is
> necessary for writing most useful macros. Please explain how the two are
> related. (I don't see the connection between your answer and your original
> statement.)
My assumption was that ... and _ are bound in (r6rs base). If they are
bound, exporting them is necessary for writing most useful macros. It did not
even occur to me originally that an implementor might leave them unbound,
thereby preventing users from being able to do various useful things to them.
Example of useful things:
- If you do not bind _ in (r6rs base), a user cannot easily create an
r5rs-compatibility library where syntax-rules treats _ as an
ordinary variable.
- If you do not bind => in (r6rs base), a teacher cannot easily create
a teaching language in which cond does not recognize => clauses
(PLT contains such a language).
Cheers
Andre
Received on Thu Jan 25 2007 - 07:46:26 UTC
This archive was generated by hypermail 2.3.0
: Wed Oct 23 2024 - 09:15:01 UTC