Bonjour à tous,

J'ai fait la ridicule petite fonction suivante :

(defun traite_types1 (l)
(let ((l1 NIL) (l2 NIL))
(setq l1 (string (car l)))
(setq l2 (cdr l))
(dolist (x l2)
(setq l1 (concatenate ‘string l1 (concatenate ‘string ";" (string x))))
)
(write l1)
(setq l1 (concatenate ‘string "(" (concatenate ‘string l1 ")")))
(write l1)

)
)

A partir d'une liste du style (A B C), elle doit générer la chaîne de caractères :
"(A;B;C)".

Après l'appel (traite_types1 '(A B C)), j'ai droit à la sortie suivante :
----------------------------------------------------------
CL-USER 30 : 4 > (traite_types1 ‘(a b c))
"A;B;C"
Error: The variable is unbound. (un blanc à la place du nom de la variable)
1 (continue) Try evaluating again.
2 Specify a value to use this time instead of evaluating .
3 Specify a value to set to.
4 (abort) Return to debug level 4.
5 Return to debug level 3.
6 Return to debug level 2.
7 Return to debug level 1.
8 Return to top loop level 0.

Type :b for backtrace or :c <option number> to proceed.
Type :bug-form "<subject>" for a bug report template or for other options.
------------------------------------------------------------
Tout se passe donc bien à l'intérieur de la boucle qui génère "A;B;C"
mais cela se gâte lorsque je veux ajouter les parenthèses autour de cette chaîne de caractères.
Il doit s'agir d'une erreur grossière de ma part, mais j'avoue que je ne vois pas...

Merci d'avance pour votre aide.