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

Re: proposals for R5RS (sorry)



> PROPOSAL 1:  An escape syntax for templates.

> Add the production

>     <template>  -->  (::: <template>)

> If a <template> of the form (::: <template>) occurs as a subtemplate
> on the right side of a <syntax rule>, then all ellipses that occur
> within the <template>, and all occurrences of the ::: symbol itself,
> will be transcribed as if they were ordinary identifiers.  This
> allows a macro to expand into expressions that contain ellipses, or
> ellipses escaped by the ::: symbol.  Pattern variables that occur
> within the <template> will still be expanded.

This is a nice generalization of the (... ...) escape that we proposed
in "Syntactic Abstraction in Scheme".  Is there some reason why you
chose ::: rather than ...?  I chose ... in order not to take away one
more identifer from the pattern variable namespace.  I am happy with
this change if you are willing to go with ..., unless you can convince
me that using some other identifier is necessary.

> PROPOSAL 2:  Vectors as patterns.

> Add the productions:

>     <pattern>   -->  #(<pattern>*)
>                   |  #(<pattern>* <pattern> <ellipsis>)
>     <template>  -->  #(<template element>*)

> Delete the production:

>     <pattern datum>  -->  <vector>

I agree with this change.  I would at least like to see <vector>
removed from <pattern datum>, since it precludes implementations from
handling vectors in this way.

Kent