This page is part of the web mail archives of SRFI 46 from before July 7th, 2015. The new archives for SRFI 46 contain all messages, not just those from before July 7th, 2015.
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