Dr. Racket 5.3.1: Listen anlegen und verwenden

Diesmal soll es um einen aus meiner Sicht recht wichtigen Teil für Dr. Racket. Um das Anlegen und verwenden von Listen. In Listen könnt ihr dynamische Datenstrukturen speichern die in irgendeiner Form miteinander in Beziehung stehen.

Ich möchte euch zuerst zeigen wie ihr Listen in Dr. Racket anlegen könnten und danach wie ihr die Information aus listen weiterverwenden könnt.

Anlegen von Listen

Um Listen in Dr. Racket anlegen zu können, müsst ihr natürlich zuerst die Entwicklungsumgebung starten =) Wir unterscheiden drei Möglichkeiten, Listen in Dr. Racket anzulegen.

Bei jeder der drei Möglichkeiten ensteht die selbe Liste, nämlich eine Liste mit den Zahlen eins, zwei und drei als Inhalt. Bei Möglichkeit 1 wird jedes Element  nacheinander in die Liste geschrieben. Diese Variante wird oft für rekursive Methoden verwendet, bei denen eine List als Ergebnis zurückgegeben werden soll.
Möglichkeit zwei und drei erzeugen direkt eine Liste mit den gewünschten Inhalten. Möglichkeit 3 ist im wesentlichen nur die Kurzschreibweise von Möglichkeit 2. Ich persönliche würde aber eher die zweite Variante verwenden, da es bei der dritten Variante öfters mal zu Fehlern kommen kann. Um nun mit der Liste arbeiten zu können müssen wir eine liste anlegen und dieser einen Namen vergeben. Ich verwende dafür mal Variante zwei.

Listen auslesen

 

Ok wir haben nun mit einer der drei möglichen Varianten eine Liste mit den Zahlen von eins bis drei angelegt. Nun wollen wir auf die einzelnen Elemente zugreifen. Um auf das erste Element der Liste zuzugreifen verwenden wir den folgenden Code:

Wollen wir nun den Rest der Liste haben, also eine Liste die aus den Zahlen zwei und drei besteht verwenden wir den folgenden Befehl.

Woran liegt das nun? Ein Listeneintrag kann immer nur aus zwei werten bestehen, einem First und einem Rest. Habe ich nun eine Liste aus drei Zahlen habe ich als ersten Listeneintrag die Zahl eins und als zweiten Listeneintrag eine weiter Liste, welche die Zahlen zwei und drei beinhaltet.

Will ich mir nun die Zahl zwei ausgeben lassen, also die mittlere Zahl, dann verwende ich den folgenden Code:

Was passiert dabei genau. Als erstes wird die innere Klammer ausgeführt. Wir haben also den Rest der Liste ( die Liste mit dem Inhalt (2 3)). Von diesem Rest der Liste lassen wir uns nun den ersten Wert zurückgeben.

Es funktioniert genau so wenn wir die dritte Zahlen haben wollen. Es wird wieder einmal mehr verschachtelt.

Hier wird wieder zuerst der Rest der kompletten Liste genommen (2 3). Davon wird wieder der Rest genommen. Nun entsteht eine Liste die so aussieht (3 empty). Von dieser Liste brauchen wir nun den ersten Eintrag, also verwenden wir First.

Ich hoffe ich habe es nicht zu kompliziert Erklärt =) Aber falls es Probleme gibt könnt ihr diese Ja einfach in die Kommentare schreiben.

 

 

About Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Comments

  1. Hi Christian ^^

    ich hätte da mal ne Frage:

    Angenommen ich habe eine längere Liste mit Werten und möchte die ersten drei davon herausgreifen für eine rechnung.
    Danach möchte ich die nächsten drei (aber einschließlich der letzten zwei der ersten drei…uhm … im Prinzip will ich also jeden einzelnen wert bearbeiten und dafür seine nachbarn verwenden) verwenden.
    also brauche ich einen Weg wie ich in der Liste weiterlaufe ohne ständig noch mehr firsts und seconds usw zu verwenden.
    Meine Idee wäre jetzt gewesen immer das erste element zu löschen und dann einfach wieder first, second, third zu nehmen.
    Geht das noch einfacher?

    Liebe Grüße, Lara

Speak Your Mind

*