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

Various comments

This page is part of the web mail archives of SRFI 93 from before July 7th, 2015. The new archives for SRFI 93 contain all messages, not just those from before July 7th, 2015.



Hello everyone,
and thanks to Kent Dybvig for making this SRFI available. The
design of syntax transformation in R6RS is not a simple task, with
various very good designs - explicit renaming, syntactic closures
and SYNTAX-CASE - being available.

I'm not much into all of this, so I'll try to restrict myself to
some specific problems I can see in the SRFI itself.

Section 3 mentions "singleton identifiers" as a possible form for
syntax abstractions, and refers to section 3.6 for more information. I
couldn't find this in 3.6.

The interpretation of DEFINE-SYNTAX according to section 3.3 seems
to be difficult to integrate with the expansion of internal
DEFINEs into LETREC* forms. Would it be possible to add a
definition of the full expansion process in the SRFI here?

According to section 3.4, transformers are procedures which accept a
single argument. Not only is this incompatible with existing systems
(such as explicit renaming), it is also problematic for later
extension. I think it would be more useful to use a new form here,
such as (SYNTAX-TRANSFORMER STX (SYNTAX-CASE STX ...)) or
(SYNTAX-LAMBDA (STX) (SYNTAX-CASE STX ...)).

Variable transformers are introduced in the same section. The
whole purpose of this seems to be to allow a generalized SET!
similar to SRFI-17. This seems somewhat kludgey, and not very much
related to the purpose of syntax transformation. What is the
rationale to define a generalized SET! together with other syntax
transformations, and not as a specific extension to SET!?

Finally, section 3.6 mentions #(pattern*) etc. as a possible
pattern. R5RS does not allow vector literals, they do have to be
quoted. Does this mean one can define #(foo) to be semantically
meaningful syntax in R6RS? What is the rationale for allowing
this?

Regards,
        -- Jorgen

-- 
((email . "forcer@xxxxxxxxx") (www . "http://www.forcix.cx/";)
 (gpg   . "1024D/028AF63C")   (irc . "nick forcer on IRCnet"))