[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Is this a bug of Emacs-Lisp?
From: |
Luc Teirlinck |
Subject: |
Re: Is this a bug of Emacs-Lisp? |
Date: |
Fri, 17 Feb 2006 11:57:42 -0600 (CST) |
Zhang Wei wrote:
(defun dummy () '(1 . 2))
(dummy)
=> (1 . 2)
(setcdr (dummy) 3)
(dummy)
=> (1 . 3)
Modify the return value of dummy changed it's defination. Is this
a bug of Elisp?
No. You get the same result in Common Lisp if you replace, in the
above, setcdr with rplacd.
If it's not. How does this happen?
If a function returns a quoted cons, then after you change the cdr of
the cons, it still returns that (now changed) cons.
Using (defun dummy (cons 1 2)) will prevent this.
Sincerely,
Luc.
- Is this a bug of Emacs-Lisp?, Zhang Wei, 2006/02/17
- Re: Is this a bug of Emacs-Lisp?, David Kastrup, 2006/02/17
- Re: Is this a bug of Emacs-Lisp?, Kevin Rodgers, 2006/02/17
- Re: Is this a bug of Emacs-Lisp?, Giorgos Keramidas, 2006/02/17
- Re: Is this a bug of Emacs-Lisp?, Andreas Schwab, 2006/02/17
- Re: Is this a bug of Emacs-Lisp?,
Luc Teirlinck <=
- Re: Is this a bug of Emacs-Lisp?, Luc Teirlinck, 2006/02/17
- Re: Is this a bug of Emacs-Lisp?, Alan Mackenzie, 2006/02/17
- Re: Is this a bug of Emacs-Lisp?, Sascha Wilde, 2006/02/17
- Re: Is this a bug of Emacs-Lisp?, Richard M. Stallman, 2006/02/18