< Back to IRCAM Forum

remove-dup

Bonsoir,
l’objet “remove-dup” élimine l’élément répété avant sa répétition.
ex : (1 2 3 2 4 5 = 1 3 2 4 5)
comment on peut obtenir alors ?
1 2 3 2 4 5 = 1 2 3 4 5
merci

Pour l’exemple ci-haut,

il faut mettre un reverse avant le remove-dup, puis refaire le reverse a sa sortie.

k

merci Karim
et pourquoi “remode-dup” fait ça ?

Ruben,

Ca cela vient du commonLisp. C’est assez technique.

Alice au pays du Lisp

Dans lisp il y a des listes. puis il y a le CAR (premier elmt de la liste), puis le CDR (le reste de la liste)… C’est les “primitives” du lisp. [Voila que je me prends pour un informaticien!!!] - ce que je ne suis pas du tout… mais en bref, … en lisp c’est avec car et cdr que l’on peut deja faire pas mal de choses. MAIS, c’est pour cela, que souvent on se retrouve a travailler avec ce qui reste (car c’est tjs une liste), que avec le CAR qui est un atome… et la tomme c’est bien , mais…
Bon, je vais arreter la…

---- Ici un peu plus serieux… ----
reverse est assez utile dans ce cas la !..
en code on a souvent recours a cela…

Par contre on peut faire autrement pour enlever les duplicates en debut de liste. Mais c’est un peu plus cher (en calcul…!) car il faut tjs re-initialiser le resultat… De nos jours, cela ne compte plus… on peut faire les 2 solutions… La premiere etait a l’epoque des dinosaures , [que l’on a ete] moins chere en calcul… Voila !

J’espere que mon hallucination LSD (Lisp Special Delire) n’a pas ete trop delriante…!

goodnight !
and have good dreams !

And may the Lisp be with you!

K

ps. remove-dup est une version “améliorée” (mais aussi un peu simplifiée) de la fonction Lisp remove-duplicates.
une possibilité pour inverser le sens de la recherche en utilisant remove-duplicates directement, est d’employer le keyword :from-end T (mais il n’est pas accessible avec remove-dup)

Bonjour
Il sont très bien toutes les explication, cela nous permet d’avancer.
Merci Karim et Jean