Modius - Techblog

  • Ansible
  • Docker
  • DevOps
  • Gastautor werden
  • Newsletter abonnieren
  • Über Mich
  • Kontakt

Dr. Racket 5.3.1: Listen anlegen und verwenden

Veröffentlicht am 27. Februar 2013 von Christian Piazzi 3 Kommentare , Aktualisiert am 22. Februar 2013
Geschätzte Lesezeit: 2 Minuten

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.

1
2
3
4
5
6
7
8
;; Möglichkeit 1
(cons 0 (cons 1( cons 2( cons 3 emtpy))))
 
;; Möglichkeit 2
(list 1 2 3)
 
;; Möglichkeit 3
‘(1 2 3)

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.

Scheme
1
(define lon (list 1 2 3))

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:

Scheme
1
(first lon)

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

Scheme
1
(rest lon)

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:

Scheme
1
(first (rest lon))

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.

Scheme
1
(first (rest (rest lon)))

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.

 

 

Kategorie: Programmierung Tags: Datenfelder, Dr. Racket, Dr. Scheme, funktional, list, Listen, Programmierung

Dr. Racket 5.3.1: Anlegen und verwenden von structs

Veröffentlicht am 20. Februar 2013 von Christian Piazzi 4 Kommentare , Aktualisiert am 13. Februar 2013
Geschätzte Lesezeit: 45 Sekunden

In dem heutigen Artikel will ich euch etwas zu structs erzählen und wie ihr diese in Dr. Racket verwendet.

Ein struct ist im wesentlichen ein Verbund von Datensätzen. Dieser Verbund kann aus verschiedene Datenypen zusammengesetzt werden (Zahle, Texte, Characters). Ich werde euch das einfach mal an einem Beispiel erklären.
Dafür öffnen wir unser Entwicklungsumgebung Dr. Racket. Hier wollen wir nun ein struct anlegen, in dem wir Kontakte mit einem Namen und einer Telefonnummer anlegen wollen.
Dafür verwenden wir den folgenden Befehl:

Scheme
1
(define-struct kontakte (name nummer))

Jetzt haben wir unser struct in Dr. Racket erstellt. Nun müssen wir diese noch mit Daten füllen. Dafür verwenden wir den folgenden Aufruf:

Scheme
1
(define test (make-kontakt „Max Mustermann“ „12345-09876“))

Wir haben nun den ersten Eintrag in unserem struct. Dieser hat den Namen test bekommen. Diesen Namen benötigen wir, um die Daten wieder Abfragen zu können. Anschließen erstellen wir mit dem Befehl make-kontakt die Inhalte des Eintrages test.

Nun wollen wir uns mal den Inhalt des structs ausgeben lassen. Als erstes den eingetragenen Namen und als zweites die eingetragene Telefonnummer.

Scheme
1
2
(kontakt-name test)
(kontakt-nummer test)

Kategorie: Programmierung Tags: Datenfelder, Dr. Racket, Dr. Scheme, funktional, Programmierung, struct

Kategorien

  • Linux
  • Internet, Bloggen & Co
  • Programmierung
  • Sicherheit
  • Netzwerk & Co
  • Mikrokontroller
  • Windows

Beliebte Artikel

  • Docker Container – anzeigen, starten, stoppen und löschen
  • Nextcloud https mit self-signed Zertifikat einrichten
  • Arten von Betriebssystemen
  • ioBroker auf dem Raspberry Pi installieren und konfigurieren
  • systemctl / systemd richtig verwenden

Neueste Kommentare

  • Thorben bei Nextcloud https mit self-signed Zertifikat einrichten
  • Sepp bei Automatisierte Dokumentation von Python Projekten mit sphinx
  • Sascha bei Arduino – 4fach 7-Segmentanzeige mit Schieberegister
  • Sylvio Seidel bei Nextcloud https mit self-signed Zertifikat einrichten
  • Markus Beier bei ioBroker auf dem Raspberry Pi installieren und konfigurieren

Werbung

Archive

Kontakt, Datenschutz und Impressum

  • Kontakt
  • Datenschutz
  • Impressum

Schlagwörter

Anleitung Ansible Apache Apple App Store Automatisierung Blogparade C++ Centos centos 7 CentOS7 Container Datenbank DevOps Docker Dr. Racket Dr. Scheme funktional Gastartikel Google HowTo httpd Icinga2 Icinga 2 Installation itsm Linux Minecraft Monitoring mooc MySQL owncloud PHP Plugin Programmierung python Raspberry Pi Schritt für Schritt Server Sicherheit Tutorial Ubuntu Update Windows Wordpress

Copyright © 2022 · Outreach Pro on Genesis Framework · WordPress · Anmelden