From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: pjb@informatimago.com (Pascal J. Bourguignon) Newsgroups: gmane.emacs.help Subject: Re: Basic questions about elisp Date: Sun, 08 Nov 2009 18:12:23 +0100 Organization: Informatimago Message-ID: <871vk99c08.fsf@galatea.local> References: <1e9f8449-09ec-4a84-a332-9f05fadb8aa3@z41g2000yqz.googlegroups.com> <87iqdpdog1.fsf@galatea.local> <871vkdm2p1.fsf@lola.goethe.zz> <4d5245de-4a71-4be7-a445-6d033be48490@g23g2000yqh.googlegroups.com> <87zl6ziooo.fsf@lola.goethe.zz> <878wejcpys.fsf@galatea.local> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1257702062 8525 80.91.229.12 (8 Nov 2009 17:41:02 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 8 Nov 2009 17:41:02 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun Nov 08 18:40:55 2009 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1N7Bkv-00048V-T6 for geh-help-gnu-emacs@m.gmane.org; Sun, 08 Nov 2009 18:40:50 +0100 Original-Received: from localhost ([127.0.0.1]:50499 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N7Bkv-0004EL-BG for geh-help-gnu-emacs@m.gmane.org; Sun, 08 Nov 2009 12:40:49 -0500 Original-Path: news.stanford.edu!usenet.stanford.edu!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 63 Original-X-Trace: individual.net +qOI1PKWCIS9tPgeNPZHoAhQsfkkVMi/RsRwetkx+A9BQ9fA/8 Cancel-Lock: sha1:YTdkZjFmMmIzZDFjZDUxZGM4MDBiYmY3ZGU0OTg5MjMwNmQwNDFlZg== sha1:VO2RW3fNAEM0J6jtAP5p/TNW0q8= Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA oElEQVR4nK3OsRHCMAwF0O8YQufUNIQRGIAja9CxSA55AxZgFO4coMgYrEDDQZWPIlNAjwq9 033pbOBPtbXuB6PKNBn5gZkhGa86Z4x2wE67O+06WxGD/HCOGR0deY3f9Ijwwt7rNGNf6Oac l/GuZTF1wFGKiYYHKSFAkjIo1b6sCYS1sVmFhhhahKQssRjRT90ITWUk6vvK3RsPGs+M1RuR mV+hO/VvFAAAAABJRU5ErkJggg== X-Accept-Language: fr, es, en X-Disabled: X-No-Archive: no User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/22.3 (darwin) Original-Xref: news.stanford.edu gnu.emacs.help:174535 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:69611 Archived-At: Francis Moreau writes: > pjb@informatimago.com (Pascal J. Bourguignon) writes: > >> Francis Moreau writes: >>>>> When I wrote '(2), I suppose the elisp interpreter to create a new >>>>> list. >>>> >>>> It does so, but at read time. Not execution time. >>>> >>> >>> Ah ok I see what you mean now. >>> >>> That's a pretty important point, is this part covered by the elisp info ? >> >> Yes. >> > > Sorry for being blind but I can't find the revelant section. > > Could you give me a pointer ? Well, there are several places where it's covered, but here is one where it's explicitely explained: (info "(elisp)Rearrangement") -- Function: nconc &rest lists [...] A common pitfall is to use a quoted constant list as a non-last argument to `nconc'. If you do this, your program will change each time you run it! Here is what happens: (defun add-foo (x) ; We want this function to add (nconc '(foo) x)) ; `foo' to the front of its arg. (symbol-function 'add-foo) => (lambda (x) (nconc (quote (foo)) x)) (setq xx (add-foo '(1 2))) ; It seems to work. => (foo 1 2) (setq xy (add-foo '(3 4))) ; What happened? => (foo 1 2 3 4) (eq xx xy) => t (symbol-function 'add-foo) => (lambda (x) (nconc (quote (foo 1 2 3 4) x))) Of course, it could be infered from: C-h f quote RET or: (info "(elisp)Quoting") -- __Pascal Bourguignon__