• Keine Ergebnisse gefunden

9 FormaleSemantik 8 EinführunginProlog 7 Lisp-Beispiele 6 EinführunginCommonLisp 5 C-BinärerSuchbaum 4 FortgeschrittenesinC 3 C-Fehlerfindenundvermeiden 2 EinführunginC 1 Einleitung Outline

N/A
N/A
Protected

Academic year: 2021

Aktie "9 FormaleSemantik 8 EinführunginProlog 7 Lisp-Beispiele 6 EinführunginCommonLisp 5 C-BinärerSuchbaum 4 FortgeschrittenesinC 3 C-Fehlerfindenundvermeiden 2 EinführunginC 1 Einleitung Outline"

Copied!
11
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Outline

1 Einleitung 2 Einführung in C

3 C - Fehler finden und vermeiden 4 Fortgeschrittenes in C

5 C - Binärer Suchbaum 6 Einführung in Common Lisp 7 Lisp - Beispiele

8 Einführung in Prolog

(2)

Map

Um Funtionen auf Listenelemente anzuwenden bietet Lisp viele Map-Funktionen

mapcarwendet eine unäre Funktion sukzessive auf den Listkopf (car) an

(mapcar #’abs ’(3 -4 2 -5 -6) ) => (3 4 2 5 6)

maplistwendet eine unäre Funktion sukzessive auf den Rest der Liste (cdr) an

(maplist #’identity ’(1 2 3) ) => ((1 2 3) (2 3) (3) )

Eine Verwandte methode istapply

(apply # ’+ ’(1 2 3) ) => 6

. . .#signalisiert Interpreter, dass Symbol eine Funktion ist

(3)

Lambdas

Basis, sogenanntes Lambda-Kalkül

Anonyme Funktionen am bekanntesten (C++, Python, Ruby,..)

Lambda erzeugt aufrufbares Symbol

Beispiel:

(lambda (x) (+ x 3) )

Anwendung:

(mapcar (lambda (x) (if (evenp x) (print x)))

’(1 2 3 4 5) )

=> 2, 4

(4)

Programmierbeispiel Binärbaum

Wie realisiert man einen Binärbaum in Lisp?

Als Liste von Listen von Listen. . .

Beispiel:

1; 3

2; / \

3; / \

4; 1 5

5; / \ /

6; / \ /

7; 0 2 4

8(setf tree ’(3 (1 (0 () () ) (2 () () )) (5 (4 () () ) () )))

(5)

Programmierbeispiel Binärbaum

Wie realisiert man einen Binärbaum in Lisp?

Als Liste von Listen von Listen. . .

Beispiel:

1; 3

2; / \

3; / \

4; 1 5

5; / \ /

6; / \ /

7; 0 2 4

8(setf tree ’(3 (1 (0 () () ) (2 () () )) (5 (4 () () ) () )))

(6)

Baumtraversierung

Gegeben sei ein Baumtree. Definieren Sie eine Lispfunktion zum traversieren:

In-Order

Post-Order

Pre-Order

(7)

Einfügen

Definieren Sie eine Lispfunktion zum Einfügen eines Integer Wertes in einen Binärensuchbaum

(8)

Prüfen

Entwerfen Sie ein Lisp Prädikat zum prüfen, ob ein Baum valide ist:

Struktur stimmt?

Ordungsrelation stimmt?

(9)

Fibonacci Zahlen rekursiv

fn =fn−1+fn−2fürn>2 undf1=f2 = 1

(10)

Fibonacci Zahlen iterativ

fn =fn−1+fn−2fürn>2 undf1=f2 = 1

(11)

Ackermann rekursiv

A(m,n) =













n+ 1 ifm= 0

A(m−1,1) ifm>0 andn= 0 A(m−1,A(m,n−1)) ifm>0 andn>0.

Referenzen

ÄHNLICHE DOKUMENTE

Nimm naechstes -Pointer des aktuellen Elements als aktuelles Element.. Gib Wert aus und wiederhole ab Schritt 2

Mathias Goldau, Stefan Koch, Wieland Reich Übung - Modellierung & Programmierung II...

Keine der fünf Personen trinkt das gleiche Getränk, raucht die gleichen Zigaretten oder hält das gleiche Tier wie seine Nachbarn.. ⇒ Frage: Wem gehört

an dieser Stelle endet das Beispiel, denn die semantischen Funktion für eine Zuweisung soll im selbststudium, dass heißt im Rahmen des aktuellen Übungsblatts, definiert werden....

Aus eins mach zehn und zwei lass gehen, und drei mach gleich, so bist du reich.. 10 2

Seine Ehefrau betreibt ein gewerbliches Einzelunternehmen in Krefeld (Gewerbesteuerhebesatz 480 %) und erwirtschaftet im Jahr 2019 einen Gewinn aus Gewerbebetrieb in Höhe

Zeile: (7+1–4)·6=24 Finde zu möglichst vielen Kombinationen mindestens eine Lösung und

Könnt ihr euch denn auch noch daran erinnern wie die einzelnen Teile des Computers aussehen?. Tragt unter jedes Bild den richtigen Namen