Woher weiss ich wann eine neue Liste anfaengt?

Christian.
Mausschubser
Mausschubser
Beiträge: 56
Registriert: 6. Aug 2007 22:38

Woher weiss ich wann eine neue Liste anfaengt?

Beitrag von Christian. »

Angenommen ich haette die Liste '(() (1) (2 3) (4 5 6)))
Woher weiss ich dann wann die Liste mit (2 3) anfaengt?
Fuer ein kleinen Tipp waere ich dankbar.

Benutzeravatar
bearmann
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 121
Registriert: 20. Okt 2006 13:53
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von bearmann »

Das erledigt hier (ich denke mal, du meinst die HA3.6) der map-Befehl.
Durch ihn sieht deine Funktion nur die eonzelnen Listen und gar nicht die "Haupt-Liste". Du musst also nur mit '() ... '(1) ... '(2 3) .. usw. arbeiten.

Unabhängig davon erkennst du aber das Ende einer Liste am "empty". Danach fragst du ja auch beim Rekursions-Abbruch: [(empty? alon) ... ]
Wenn du es also ohne den map-Befehl machen wolltest, bräuchtest du eine doppelte/zwei Rekursionen. Einmal um in der Hauptliste zu den Unterlisten zu wandern und eine andre, um in den Unterlisten vom einen zum nächsten Zeichen zu gehen.
Brauchst du aber wie gesagt nicht, dank map... :)

Grüße,
bearmann

Christian.
Mausschubser
Mausschubser
Beiträge: 56
Registriert: 6. Aug 2007 22:38

Beitrag von Christian. »

das wusste ich nicht, dass das auch map uebernimmt.
erscheint alles auf einmal viel leichter :D
mal wieder vielen dank fuer deinen ausfuehrlichen tipp, bearmann!

Benutzeravatar
giftnudel
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 112
Registriert: 3. Mai 2005 11:26

Beitrag von giftnudel »

map schaut sich nur die Elemente einer Liste an, ob das wieder Listen sind interessiert die Funktion (im Prinzip) nicht.
Ein Box Diagramm hilft im übrigen auch weiter, um zu sehen wie z.B.: (list ()) oder (list (list 1) 1) aussieht, vielleicht geht es dann auch so.

Antworten

Zurück zu „Archiv“