From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Lowell Kirsh Newsgroups: gmane.emacs.help Subject: Re: elisp macros problem Date: Mon, 26 Jul 2004 23:54:41 -0700 Organization: Department of Computer Science, UBC Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Message-ID: References: NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1090911432 28098 80.91.224.253 (27 Jul 2004 06:57:12 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 27 Jul 2004 06:57:12 +0000 (UTC) Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Tue Jul 27 08:57:07 2004 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1BpLtb-0004Pl-00 for ; Tue, 27 Jul 2004 08:57:07 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1BpLwg-0006VA-4I for geh-help-gnu-emacs@m.gmane.org; Tue, 27 Jul 2004 03:00:18 -0400 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!nntp.cs.ubc.ca!cs.ubc.ca!not-for-mail Original-Newsgroups: gnu.emacs.help,comp.lang.lisp Original-Lines: 53 Original-NNTP-Posting-Host: okanagan.cs.ubc.ca Original-X-Trace: mughi.cs.ubc.ca 1090911285 25795 142.103.7.18 (27 Jul 2004 06:54:45 GMT) Original-X-Complaints-To: usenet@cs.ubc.ca Original-NNTP-Posting-Date: Tue, 27 Jul 2004 06:54:45 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.1) Gecko/20040707 X-Accept-Language: en-us, en In-Reply-To: Original-Xref: shelby.stanford.edu gnu.emacs.help:124485 comp.lang.lisp:144255 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: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: main.gmane.org gmane.emacs.help:19821 X-Report-Spam: http://spam.gmane.org/gmane.emacs.help:19821 This still doesn't seem to work. With the following defun and call: (defmacro my-add-hooks (hooks &rest body) `(dolist (hook ',hooks) (my-add-hook hook ,@body))) (my-add-hooks (inferior-lisp lisp emacs-lisp lisp-interaction) (imenu-add-to-menubar "Symbols")) I get the following macroexpansion, which looks correct to me, but doesn't actually do anything: (cl-block-wrapper (catch (quote --cl-block-nil--) (let ((--dolist-temp--20870 (quote (inferior-lisp lisp emacs-lisp lisp-interaction))) hook) (while --dolist-temp--20870 (setq hook (car --dolist-temp--20870)) (my-add-hook hook (imenu-add-to-menubar "Symbols")) (setq --dolist-temp--20870 (cdr --dolist-temp--20870))) nil))) Lowell David Kastrup wrote: > Lowell Kirsh writes: > > >>Why does this not work: >> >>(defmacro my-add-hooks (hooks &rest body) >> `(dolist (hook ,hooks) >> (my-add-hook hook ,@body))) >> >>?? > > > Because you need to write > `(dolist (hook ',hooks) > > and then call this with an _unquoted_ list, like > (my-add-hooks (lisp emacs-lisp) > body) > > Apart from that, I consider this sort of thing a crock. What are you > hoping to achieve that you would not be better off doing by a proper > function instead of a macro? >