|
Funktionale
Programmierung mit Lisp
|

|
WAHR
|
FALSCH
|
|
|
ML
ist dynamisch typisiert
|
|
|
x
|
|
In ML gibt es
Funktionen ohne Namen
|
|
x
|
|
|
In ML kann
man durch Angaben im Funktionskopf nach Datentypen verzweigen
|
|
x
|
|
|
In Common
Lisp gibt es eine Funktion, die zurückgibt, ob ein Symbol
Name einer definierten Funktion ist
|
|
x
|
|
|
In Common
Lisp ergibt die Auswertung von (member '(eva 2) '((anna 1) (eva 2)
(petra 3))) den Wert t
|
|
|
x
|
|
Common Lisp
hat manifeste Datentypen, d. h. bei jedem Datenobjekt wird im
Speicher mit abgelegt, welchen Typ das Objekt hat
|
|
x
|
|
|
In Common
Lisp haben 4.0 und 4 den selben Datentyp
|
|
|
x
|
|
Die Elemente
eines Arrays in Common Lisp müssen alle den gleichen Datentyp
haben
|
|
|
x
|
|
Statisch
typisierte Sprachen müssen manifeste Datentypen verwenden
|
|
|
x
|
|
Eine Funktion
braucht einen Namen, damit man sie rufen kann
|
|
|
x
|
|
Wenn eine
Funktion f eine Funktion g erzeugt und als Funktionswert
zurückgibt, so können im Rumpf der Funktion g Variablen
(wie z.B. Parameter) von f referenziert (benutzt
werden)
|
|
x
|
|
|
Wenn eine
Funktion f mit einer Funktion g als Parameterwert gerufen wird, so
können im Rumpf der Funktion g Variablen (wie z.B.
Parameter) von f referenziert (benutzt werden)
|
|
|
x
|
|
Wenn eine
Funktion f mit einer Funktion g als Parameterwert gerufen wird, so
können im Rumpf der Funktion f Variablen (wie z.B. Parameter)
von g referenziert (benutzt werden)
|
|
|
x
|
|
Die folgende
Funktion gibt eine Funkton als Wert zurück: (define call-me
x) (lambda (x) (* x x)))
|
|
x
|
|
|
Die folgende
Funktion gibt eine Funkton als Wert zurück: (define call-me
x) ((lambda (x) (* x x) x))
|
|
|
x
|
|
Bei den
Listen (a b a c) und (b c c a) ist die Menge der
enthaltenen Elemente gleich
|
|
x
|
|
|
Die Liste ((a
b c)) enthält 3 Elemente
|
|
|
x
|
|
Die Liste ((a
b c (e f)) enthält 5 Elemente
|
|
|
x
|
|
Es gibt
verschiedene Möglichkeiten, die Menge {a, b, c} als Listen zu
repräsentieren
|
|
x
|
|
|
In Scheme
ist es möglich, alle Bruchzahlen exakt zu repräsentieren
|
|
x
|
|
|
In Scheme
kann eine Funktion Element einer Liste sein
|
|
x
|
|
|
In Scheme
kann eine Prozedur Element einer Liste sein
|
|
x
|
|
|
In Scheme
ergibt die Auswertung von (append '(1 2) 2) die Liste ((1
2) 2)
|
|
|
x
|
|
In Scheme
ergibt die Auswertung von (append '(1 2) 2) die Liste ((1 2. 2)
|
|
x
|
|
|
In Scheme
ergibt die Auswertung von (assoc 1 '((3 4) (1 3) die Zahl 3
|
|
|
x
|
|
In Scheme
ergibt die Auswertung von (assoc 1 '((3 4) (1 3) die Zahl die
Liste (1 3)
|
|
x
|
|
|
In Scheme
werden Variablennamen und Funktionsnamen syntaktisch unterschieden
|
|
|
x
|
|
Die
Auswertung von (equal? '(1 2) '(1 2)) ergibt t
|
|
x
|
|
|
Die Werte der
beiden Ausdrücke (cons '() 5) und (cons 5 '()) sind
gleich
|
|
|
x
|
|
Die
Auswertung der beiden aufeinanderfolgenden Ausdrücke: (define
x 5) ((let (z x) (y z)) (print y)) führt zum Ausdrucken der
Zahl 5:
|
|
|
x
|
|
Die Auswerung
des Ausdrucks (length '(1 2 3 (a b))) ergibt 5
|
|
|
x
|
|
|
|
|
|