J'ai une situation comme ça dans mon code:Comment interpréter un paramètre de liste comme une liste réelle, pas comme un symbole?
(defparameter names (list "Alice" "John" "Jack"))
(defparameter pair '(:smt names))
(defun process (a-list) (first a-list))
Maintenant (process names)
fonctionne très bien, mais (process (second pair))
renvoie une erreur (ne peut pas prendre la voiture de noms). Quand je débogue, j'ai remarqué que pour le dernier appel le paramètre est considéré comme un symbole par type-of
, pas une liste de valeurs (listp
renvoie nil
). Comment puis-je surmonter cela ou qu'est-ce que je fais de mal? Est-ce que (second pair)
n'est pas la même chose que names
?
Merci. Cela fonctionne bien sûr. Je ne pensais pas que la citation extérieure affectait la conversion des «noms» des symboles en leurs valeurs réelles. J'essaie toujours de m'habituer à LISP je suppose. – pembeci