[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Basic questions about elisp
From: |
Pascal J. Bourguignon |
Subject: |
Re: Basic questions about elisp |
Date: |
Sun, 08 Nov 2009 18:12:23 +0100 |
User-agent: |
Gnus/5.1008 (Gnus v5.10.8) Emacs/22.3 (darwin) |
Francis Moreau <francis.moro@gmail.com> writes:
> pjb@informatimago.com (Pascal J. Bourguignon) writes:
>
>> Francis Moreau <francis.moro@gmail.com> 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__
- Re: Basic questions about elisp, (continued)
- Re: Basic questions about elisp, Francis Moreau, 2009/11/06
- Re: Basic questions about elisp, David Kastrup, 2009/11/06
- Re: Basic questions about elisp, Francis Moreau, 2009/11/06
- Re: Basic questions about elisp, Pascal J. Bourguignon, 2009/11/06
- Re: Basic questions about elisp, Francis Moreau, 2009/11/07
- Re: Basic questions about elisp, Pascal J. Bourguignon, 2009/11/07
- Re: Basic questions about elisp, tomas, 2009/11/08
- Message not available
- Re: Basic questions about elisp, Francis Moreau, 2009/11/09
- Re: Basic questions about elisp, Francis Moreau, 2009/11/08
- Re: Basic questions about elisp, tomas, 2009/11/08
- Re: Basic questions about elisp,
Pascal J. Bourguignon <=
- Re: Basic questions about elisp, Francis Moreau, 2009/11/09
- Re: Basic questions about elisp, Joost Kremers, 2009/11/10
- Re: Basic questions about elisp, Francis Moreau, 2009/11/10
- Re: Basic questions about elisp, David Kastrup, 2009/11/10
Re: Basic questions about elisp, Barry Margolin, 2009/11/06