"LISP 001.ps.gz" - читать интересную книгу автора



Einf"uhrung in LISP Helmar Gust Armin Tischler Tobias Thelen

Timo Steffens

M"arz 2000

2 Einf"uhrung in Lisp Inhaltsverzeichnis 1 Historischer Abriss 5 2 Bedienung des VirtCampus 6

2.1 Die Tutorumgebung . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Darstellung von Beispielen . . . . . . . . . . . . . . . . . . . . 7

3 Grundbegriffe 8

3.1 Atome, Listen und S-Expressions . . . . . . . . . . . . . . . . 8 3.2 Listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3 Wertzuweisung . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.4 Funktionsdefinition . . . . . . . . . . . . . . . . . . . . . . . . 14 3.5 Exkurs: Der Unterschied zwischen Funktionen und Prozeduren 15 3.6 "Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4 Kontrollstrukturen 16

4.1 Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.2 Rekursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.3 "Ubungen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

5 Listenverwaltung 21

5.1 Zusammenf"ugen . . . . . . . . . . . . . . . . . . . . . . . . . . 22 5.2 Zitieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.3 "Ubungen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

6 Prozeduren und Funktionen (mit verschiedene Parametertypen) 27

3 7 Schleifenkonstrukte und Iteration 32

7.1 Lokale Variablen und sequentielle Ausf"uhrung . . . . . . . . . 32 7.2 Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 7.3 Die map-Famile . . . . . . . . . . . . . . . . . . . . . . . . . . 39 7.4 "Ubungen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

8 Destruktive Listenprozeduren 45

8.1 Einfache destruktive Prozeduren . . . . . . . . . . . . . . . . . 46 8.2 place forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 8.3 Differenzlisten . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 8.4 Exkurs: Vorteile seiteneffektfreier Programmierung . . . . . . 55 8.5 "Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

9 Weitere Datenstrukturen 58

9.1 Assoziationslisten . . . . . . . . . . . . . . . . . . . . . . . . . 58 9.2 "Ubungen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 9.3 Eigenschaftslisten (property lists) . . . . . . . . . . . . . . . . 63 9.4 "Ubungen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 9.5 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

10 Funktionsdefinitionen 69