Home
 

Test 3

Test 3

Die Aufgaben 1 und 2 präsentieren Haskell-Ausdrücke, für die Sie jeweils den Wert angeben sollen oder aber ob ein Syntax-, Typ- oder Laufzeitfehler vorliegt. (Vermerken Sie Ihre Antwort bitte auf diesem Blatt hinter dem Ausdruck und verwenden Sie für die drei Fehlerfälle die Abkürzungen SF, TF, LF !) Es wird der übliche Kontext (standard prelude) angenommen.

1.
 [[]] ++ [2] == [2]               [[]] ++ [2] == [[2]]

[[]] ++ [2] == [[],[2]] [[]] ++ [[2]] == [[],[2]]
[[2]] ++ [] == [[2]] [[2]] ++ [[2]] == [[2]]
[[2]] ++ [[2]] == [[2],[2]] [[2]] ++ [] == [[2],[]]
2.
Gegeben sind die Funktionen aus der Vorlesung: asLines:: Text->[Line], asWords:: Line->[Word], asParas:: [Line]->[Para] sowie die Definition beisp = "ab\nx\n". Was ist:
 (map(map asWords).asParas.asLines) beisp

(asParas.(map asWords).asLines) beisp
(length.concat.map asWords) (asLines beisp)
map (length.concat.map asWords) (asParas (asLines beisp))
3.
Im folgenden soll eine alternative Definition der Konkatenation gegeben werden. Ergänzen Sie die fehlenden Teile (ohne Verwendung von (++), d.h. ohne explizite Rekursion):
 (++):: [a]->[a]->[a]

xs ++ ys = foldr op a b
where op =
a =
b =
4.
Die Funktion subs sei definiert als
 subs [] = [[]]

subs (x:xs) = subs xs ++ map (x:) (subs xs)
(a)
Welche der folgenden Typdeklarationen paßt dazu:
 subs:: [a]->[a]                 subs:: [a]->[[a]]

subs:: [[a]]->[a] subs:: [[a]]->[[a]]
(b)
Was ist: subs [[1,2],[9]]


nextnextupuppreviouspreviouscontentscontents
Next:About this document ...Up:Proseminar-TestsPrevious:Test 2
Ronald Blaschke
1998-04-19