[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Opaque syntax objects
Felix Winkelmann wrote:
> On 8/12/05, Michael Sperber <sperber@xxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> > The issue has come up in the discussion, but hasn't really been in the
> > focus yet:
> > I'd like to suggest that compound expressions be represented by an
> > opaque type rather than by pairs. This would ensure a modicum of
> > abstraction, and would *really* make comprehensive the ability of all
> > syntax objects to carry location information. I've come to appreciate
> > this added layer of abstraction in PLT Scheme.
> But wouldn't this completely break the (IMHO) rather practical ability
> to destructure arguments passed to macros via normal Scheme operators?
> What I like about srfi-72 is that I can write hygienic macros with (nearly)
> the same ease as in conventional Lisp-/quasiquote-style.
As a supporting data point, I was able to port the Scheme48 basic forms
(cond, case, etc. ...), as well as its syntax-rules implementation, a very
nontrivial macro, with the greatest of ease to SRFI-72, without having to
worry about converting cadddr's, null?'s, higher order list operations
such as map, every, ..., and so on. I also did not have to worry that
some coercion might have changed the complexity class of the algorithm.