Sto leggendo "On lisp" e ho incontrato questo codice (l'ho semplificato un po ').Qual è la differenza tra '(a b c) e (lista' 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)
cosa fa esattamente
*
significa? È la chiamata alla funzione precedente? È adatto per l'uso nel codice del mondo reale?Perché il
(nconc * '(D E))
modifica il valore di ritorno della prima funzionefoo
?Ho sempre pensato che
(list 'a 'b 'c)
e'(a b c)
sono gli stessi? Qual è la differenza?
non ci avevo pensato;) –