| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: vl-remove bei verschachtelten Listen (1371 mal gelesen)
|
AB Mitglied
Beiträge: 255 Registriert: 24.05.2002 Mechanical Desktop 6 AutoCAD 2002
|
erstellt am: 29. Okt. 2003 11:38 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, immer und immer wieder habe ich Probleme mit verschachtelten Listen Bsp. kann ich folgendes Problem nicht lösen. Ich habe eine Liste, aus der möchte ich (mit vl-remove-if) die 3 herauslöschen. (Setq liste (list(list(list 1 2 3)(list 4 5 6))(list(list 7 8 0)(list 10 11 12)))) Aber wie geht das? Wenn die Liste so verschachtelt ist? Viele Grüße Andrea Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 29. Okt. 2003 12:11 <-- editieren / zitieren --> Unities abgeben: Nur für AB
Hallo Andrea, versuch das, es werden alle Elemente, die =3 sind entfernt:
Code:
(mapcar '(lambda (LE1) (mapcar '(lambda (LE2) (vl-remove-if '(lambda (E) (= E 3) ) LE2) ) LE1 ) ) (Setq liste (list(list(list 1 2 3)(list 4 5 6))(list(list 7 8 0)(list 10 11 12)))) )
Bei Fragen ... Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD NEU: AutoLISP- Projektschulung NEU: Praxisorientierte Schulungen und Workshops durch die bekannten CAD.de Moderatoren AutoCAD, AutoCAD LT, AutoCAD Mechanical, Mechanical Desktop, Architectural Desktop Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AB Mitglied
Beiträge: 255 Registriert: 24.05.2002 Mechanical Desktop 6 AutoCAD 2002
|
erstellt am: 30. Okt. 2003 07:45 <-- editieren / zitieren --> Unities abgeben:
Hallo noch mal, so ganz habe ich das scheinbar nicht verstanden. Ich wollte nämlich nun mal probieren z.B. (4 5 6) aus der Liste zu entfernen, habe das wie folgt gemacht, aber es het nicht funktioniert. (mapcar '(lambda (LE1) (vl-remove-if '(lambda (E) (= E '(4 5 6)) ) LE1 ) ) (Setq liste (list (list (list 1 2 3) (list 4 5 6)) (list (list 7 8 0) (list 10 11 12)) ) ) ) Was ist falsch? Ich komme nicht drauf.
Viele Grüße Andrea Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 30. Okt. 2003 08:11 <-- editieren / zitieren --> Unities abgeben: Nur für AB
Hallo Andrea, du hast es verstanden! Dein Fehler lieg nun allerdings am Vergleich von Listen. Listen vergleicht man mit (equal ...) Bei Fragen ... Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD NEU: AutoLISP- Projektschulung NEU: Praxisorientierte Schulungen und Workshops durch die bekannten CAD.de Moderatoren AutoCAD, AutoCAD LT, AutoCAD Mechanical, Mechanical Desktop, Architectural Desktop Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AB Mitglied
Beiträge: 255 Registriert: 24.05.2002 Mechanical Desktop 6 AutoCAD 2002
|
erstellt am: 30. Okt. 2003 08:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Holger, da bin ich ja froh, dass ich die Logik doch verstanden habe. Trotzdem ist an ganz schön viel zu denken und wenn man nicht so viel programmiert hat man leider auch nicht immer alle Befehle und Regeln parat. Vielen Dank für Deine nette Hilfe Das hat mich wieder um einiges weiter gebracht. Viele Grüße Andrea Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |