From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Matthieu Moy Newsgroups: gmane.emacs.help Subject: Re: nested backquotes Date: Sat, 21 May 2005 11:51:05 +0200 Organization: IMAG Message-ID: References: <1116431406.143574.87990@g14g2000cwa.googlegroups.com> <87u0kx53fn.fsf-monnier+gnu.emacs.help@gnu.org> <871x814pgr.fsf-monnier+gnu.emacs.help@gnu.org> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1116669249 24484 80.91.229.2 (21 May 2005 09:54:09 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sat, 21 May 2005 09:54:09 +0000 (UTC) Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sat May 21 11:54:08 2005 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1DZQg4-0005GZ-8R for geh-help-gnu-emacs@m.gmane.org; Sat, 21 May 2005 11:53:52 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DZQj5-0004uw-7z for geh-help-gnu-emacs@m.gmane.org; Sat, 21 May 2005 05:56:59 -0400 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!proxad.net!134.158.69.22.MISMATCH!in2p3.fr!univ-lyon1.fr!news.ens-lyon.fr!news.imag.fr!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 26 Original-NNTP-Posting-Host: ecrins.imag.fr Original-X-Trace: trompette.imag.fr 1116669273 10539 129.88.43.124 (21 May 2005 09:54:33 GMT) Original-X-Complaints-To: abuse@imag.fr Original-NNTP-Posting-Date: Sat, 21 May 2005 09:54:33 +0000 (UTC) User-Agent: Gnus/5.1002 (Gnus v5.10.2) Emacs/21.4 (gnu/linux) Cancel-Lock: sha1:IvMQXAbaywb4E9rFyRksH8b7PSA= Original-Xref: shelby.stanford.edu gnu.emacs.help:131419 Original-To: help-gnu-emacs@gnu.org X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:26876 X-Report-Spam: http://spam.gmane.org/gmane.emacs.help:26876 Stefan Monnier writes: >> With the "capture" version, you can also do > >> (tla--lambda-with-capture (x y z) >> (... foo ... (capture foo) ... (capture (current-buffer)))) > > Could you explain what this does? It expands to something like `(lambda (x y z) (let ((tla1 foo) (tla2 (current-buffer))) (funcall (lambda () (... foo ... tla1 ... tla2))))) So, we still have the backquoted lambda, but containing only a let and a funcall, the actual body being byte-compiled. The translation from our backquote + comma version is roughly s/`(lambda/(tla--lambda-with-capture/g s/,.*/(capture \1)/ -- Matthieu