Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Listenerweiterung

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Listenerweiterung (780 mal gelesen)
Rolf Lauer
Mitglied



Sehen Sie sich das Profil von Rolf Lauer an!   Senden Sie eine Private Message an Rolf Lauer  Schreiben Sie einen Gästebucheintrag für Rolf Lauer

Beiträge: 11
Registriert: 25.07.2008

erstellt am: 25. Jul. 2008 20:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi miteinander,

die Listenfunktionen sind gute Sachen. Ich weiss zum Beispiel, wie ich Listenelemente am Ende oder am Anfang einer bestehenden Liste einfügen kann. Wie es der Zufall will, habe ich in einem Lisp-Programm folgendes Problem gehabt:
Ich habe eine Liste mit 30 Elementen. An der Stelle "a" (z.B. 3. oder 4.Stelle) sollen "b" Elemente (z.B. 4 Stück) eingefügt werden. Da habe ich gestockt. Wie kann ich mit einem Lisp-Code dieses Problem lösen?

Viele Grüße
Rolf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Ex-Mitglied
archtools
Mitglied



Sehen Sie sich das Profil von archtools an!   Senden Sie eine Private Message an archtools  Schreiben Sie einen Gästebucheintrag für archtools

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 26. Jul. 2008 11:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Rolf Lauer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Rolf Lauer:
Hi miteinander,

die Listenfunktionen sind gute Sachen. Ich weiss zum Beispiel, wie ich Listenelemente am Ende oder am Anfang einer bestehenden Liste einfügen kann. Wie es der Zufall will, habe ich in einem Lisp-Programm folgendes Problem gehabt:
Ich habe eine Liste mit 30 Elementen. An der Stelle "a" (z.B. 3. oder 4.Stelle) sollen "b" Elemente (z.B. 4 Stück) eingefügt werden. Da habe ich gestockt. Wie kann ich mit einem Lisp-Code dieses Problem lösen?

Viele Grüße
Rolf


Nun, da bastelst Du Dir eine auch sonst nützliche Funktion namens SPLIT, die eine Liste an der n-ten Stelle in zwei Listen aufsplittet, und hängst die Liste der dazwischen zu hängenden Liste mit APPEND rein.

Aus dem Setgreif:

Code:

(defun split (lst idx / front)
  (repeat idx
    (setq front (cons (car lst) front)
          lst (cdr lst)
    )
  )
  (list (reverse front) lst)
)

Wenn Du nun nach die 5. Stelle in einer Liste lst die Liste alst hängen willst, dann geht das einfach so:

Code:

(setq slst (split lst 5))
(append (car slst) alst (cadr slst))


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Rolf Lauer
Mitglied



Sehen Sie sich das Profil von Rolf Lauer an!   Senden Sie eine Private Message an Rolf Lauer  Schreiben Sie einen Gästebucheintrag für Rolf Lauer

Beiträge: 11
Registriert: 25.07.2008

erstellt am: 26. Jul. 2008 20:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Kollegen,

mit dem Tipp der Befehle (member, subst) kam ich nicht so gut zurecht. Aber der Code mit der Funktion SPLIT hat das Problem restlos gelöst. Ich danke Euch beiden für die Unterstützung.

Gruß Rolf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz