emacs-devel
[Top][All Lists]
Advanced

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

RE: Double unquote/unquote-splicing


From: Drew Adams
Subject: RE: Double unquote/unquote-splicing
Date: Mon, 4 Nov 2013 11:01:19 -0800 (PST)

> > "The backquote syntax was particularly powerful when nested. This
> > occurred primarily within macro-defining macros; because such were
> > coded primarily by wizards, the ability to write and interpret nested
> > backquote expressions was soon surrounded by a certain mystique.
> > Alan Bawden of MIT acquired a particular reputation as backquote-
> > meister in the early days of the Lisp Machine." - "The Evolution of
> > Lisp", Gabriel, Steele.
> 
> That sounds about right: it's only for wizards.

No, that is exactly backwards.  Please note: "The backquote syntax was
__particularly powerful when nested__."  That's about power simplifying
understanding by humans.

Read the article for explanation and good examples.  The point of that
passage is that _without_ backquote syntax the kinds of things you can
do using nested backquotes are *really* complicated without them.  The
point is that backquote syntax is _especially_ good at simplifying in
the case of nested backquotes.

What is for wizards is the need to write code of this kind: the kinds
of things that nested backquotes simplify.  Those use cases are not so
common, but if you have such a use case then you _really_ want to have
nested backquote syntax.  That's the point of the quoted passage.

The full article is here:
http://extravagaria.com/Files/HOPL2-Uncut.pdf

> Nested backquotes were largely broken in Elisp and it took many
> years for someone to notice.  I do use them occasionally, but only in
> fairly simple ways.  The resulting code is largely impenetrable, so
> I don't want to encourage it.

Nested backquote syntax should be neither encouraged nor discouraged.
The point is that compared to the alternative it is a lot simpler.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]