[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: perhaps I've missed something ...
Shriram Krishnamurthi wrote
>Lars Thomas Hansen wrote:
>
>> It's useful for syntactic (rather than procedural) abstraction.
>
>Equally, by modifying the meaning of an existing (and dangerous"!")
>Scheme primitive, it raises the possiblity of bizarre and inadvertent
>errors, especially through the use existing macro libraries. This is
>all the more likely given that (a) syntax-rules doesn't support guard
>expressions, and (b) the default pattern that a programmer would use
>is of the form ?x -- which matches both the old and new forms. (In
>contrast, if the default pattern in library code were (?setter ?x
>...), then it wouldn't match an identifier, which would be safe -- but
>this change has it the wrong way around.)
This is a good point (though at least SRFI-17 won't break working code).
The syntax rules language could stand some improvements. Currently we
can "guard" matching on pairs and vectors but not on atomic data like
identifiers; adding that capability would make it both easier to use
and less error-prone.
--lars