Matt666 Posté(e) le 6 décembre 2007 Partager Posté(e) le 6 décembre 2007 Cool ! Ca fonctionne ! merci Gile ! Juste au passage, dans ta routine sort, c'est remove[surligneur]-[/surligneur]doubles et pas remove[surligneur]_[/surligneur]doubles.... "Chacun compte pour un, et nul ne compte pour plus d'un." Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 30 décembre 2007 Auteur Partager Posté(e) le 30 décembre 2007 J'ai changé la routine SORT, la nouvelle est beaucoup plus rapide (entre 20 et 40 fois !). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Matt666 Posté(e) le 4 janvier 2008 Partager Posté(e) le 4 janvier 2008 Ok, d'accord ! Merci Gile... "Chacun compte pour un, et nul ne compte pour plus d'un." Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 23 janvier 2008 Auteur Partager Posté(e) le 23 janvier 2008 Optimisation de SORT suite au Challenge 20.La routine, contrairement à vl-sort, ne supprime pas les doublons. Pour les supprimer il suffit d'utiliser remove-doubles, exemple :(sort (remove-doubles '(3 5 6 2 1 3 8 9 4 5)) ' (1 2 3 4 5 6 8 9) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 22 juillet 2008 Auteur Partager Posté(e) le 22 juillet 2008 Salut, Ajout au premier message de fonctions équivalentes aux fonctions vlax-ldata-* qui permettent de stocker et de récupérer des données (points, réels, entiers,chaînes, listes) dans des dictionnaires attachés au dessin. Ces données sont conservées après fermeture du dessin. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Matt666 Posté(e) le 23 juillet 2008 Partager Posté(e) le 23 juillet 2008 Merci gile ! ;) "Chacun compte pour un, et nul ne compte pour plus d'un." Lien vers le commentaire Partager sur d’autres sites More sharing options...
VDH-Bruno Posté(e) le 7 février 2012 Partager Posté(e) le 7 février 2012 Bonjour, J’ajoute ici une petite contribution à ce fil de discussion, pour remove ma version moins concise mais pas moins performante..;;; équivalence à vl-remove ;;; Supprime toutes les occurrences d'un élément d'une liste ;;; (remove 'a '(b c a d a e a)) -> (B C D E) (defun remove (x l) (cond ((null l) nil) ((equal x (car l)) (remove x (cdr l))) (T (cons (car l) (remove x (cdr l)))) ) ) Dans le même esprit on peut facilement donner une variante à la fonction remove-doubles, si on n’accorde évidemment pas une grande importance à l’ordre des éléments..;;; Supprime tous les doublons d'une liste ;;; A n’utiliser que si l'ordre des éléments n'a pas d'importance ;;; (remove-doubles '(a b c b d a)) -> (C B D A) (defun remove-doubles (l) (cond ((null l) nil) ((member (car l) (cdr l)) (remove-doubles (cdr l))) (T (cons (car l) (remove-doubles (cdr L)))) ) ) Et en modifiant très légèrement l’expression, on peut également construire un remove sur toutes les profondeurs d’une liste. ;;; Supprime toutes les occurence d'un élément à toutes les profondeurs d'une liste ;;; (remove-prof 'a '(b a d (b (e a g) a) a e)) -> (B D (B (E G)) E) (defun remove-prof (x l) (cond ((null l) nil) ((equal x (car l)) (remove-prof x (cdr l))) ((listp (car l)) (cons (remove-prof x (car l)) (remove-prof x (cdr l)))) (T (cons (car l) (remove-prof x (cdr l)))) ) ) A+ Apprendre => Prendre => Rendre Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant