Subject: scheme : list append

From: Daniel Cartron <[email-masked]>
Date: Tue, 12 May 2015 08:55:35 +0200

Bonjour,

J'ai une liste '("a" "b") 
J'ai un vecteur #("1" "2" "3")

et je veux ajouter (vector-ref monvecteur 2) à ma liste pour avoir 
'("a" "b" "3") mais pas moyen de trouver comment faire
avec
(append maliste (vector-ref monvecteur 2))
j'obtiens 
("a" "b" . "3") et ce n'est pas ce que je veux à savoir ("a" "b" "3")

merci à qui me soufflera la bonne syntaxe

-- 
Cordialement, Daniel Cartron
« On peut fort bien pratiquer des opérations chirurgicales douloureuses sans 
anesthésier le patient à condition de se mettre du coton dans les oreilles. »
François Cavanna - Le saviez-vous ?

---

From: Gilles THIBAULT <[email-masked]>
Date: Tue, 12 May 2015 14:58:40 +0200

> ("a" "b" . "3") et ce n'est pas ce que je veux à savoir ("a" "b" "3")
Si tu t'en fiches de l'ordre de la liste :
(cons (vector-ref monvecteur 2)  '("a" "b")) 
   =>  ( "3" "a" "b")

Si tu veux respecter l'ordre
(append '("a" "b") (list (vector-ref monvecteur 2)))
  => ("a" "b" "3")    (non vérifier)

En terme de rapidité et de mémoire, dans une grande boucle par ex, il vaut 
mieux utiliser cons, quitte à construire d'abord sa liste à l'envers et la 
retourner ensuite avec (reverse malist)

A bientôt

-- 
Gilles