我在閱讀「On lisp」並遇到此代碼(我簡化了一下)。'(a b c)和(list'a'b'c)之間的區別是什麼?
CL-USER> (defun foo()
'(a b c))
FOO
CL-USER> (foo)
(A B C)
CL-USER> (nconc * '(D E))
(A B C D E)
CL-USER> (foo)
(A B C D E)
CL-USER> (defun foo()
(list 'a 'b 'c))
STYLE-WARNING: redefining FOO in DEFUN
FOO
CL-USER> (foo)
(A B C)
CL-USER> (nconc * '(D E))
(A B C D E)
CL-USER> (foo)
(A B C)
究竟是什麼
*
是什麼意思?它是以前的函數調用嗎?適用於真實世界的代碼嗎?爲什麼
(nconc * '(D E))
更改第一個foo
函數的返回值?我一直認爲
(list 'a 'b 'c)
和'(a b c)
是一樣的嗎?有什麼不同?
還沒有想到;) – 2009-09-13 09:33:41