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

Re: Ellipsis in the _pattern_




On Sat, 11 Oct 2003, Taylor Campbell wrote:

>additional unnecessary syntax, but I don't see a reason why you'd need
>to
>nest it at all: it's not like if you put it in the template it would
>generate anything weird if you didn't use <<...>> etc.
>
>> One thing to remember though, is that an ellipsis matches anything
>> in the code it's matching against -- including another ellipsis.
>> So there may actually be no issue here.
>
>I'm not sure what you mean here.  Could you please elaborate?


Well, I could be wrong here; I haven't thought through all the
implications of it.

But the idea here is that we're trying to make it possible to
produce macros that produce macros.

ellipsis is normally used in maco recognition patterns to mean
"match a sequence of stuff" and expansion patterns to mean "produce
the same sequence of stuff that was matched."

The SRFI was motivated by the desire to have something that will
macroexpand into an ellipsis, so that meta-macros can be built.
But if meta-meta-macros (etc) are to be built, we need something
that macroexpands into whatever form macroexpands into an ellipsis,
etc, hence the "nested" syntax.

Now you were talking about having a need for a special form that
patternmatched an ellipsis, specifically.  If we need that, then
we probably also have a need for a special form that patternmatches
that form, etc, hence a nested syntax on the matching side as
well.  If we go with ::: as the special form, then the "obvious"
nested syntax would probably mirror the expansion syntax, as in
(::: :::).

But I don't know if we really need this special form, since an
ellipsis (or a sequence of them) can already be used to match
an ellipsis (or a longer sequence of them).  IOW, what would we
use the special form for that we couldn't use an ellipsis for?

Someone who has eaten and breathed a lot more macrology than I
have will have to work out the cases and uses and figure out
whether the different uses will interfere with each other and
require separate forms, or whether a single form is adequate
and ... is really enough.

				Bear