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.
[[]] ++ [2] == [2] [[]] ++ [2] == [[2]]
[[]] ++ [2] == [[],[2]] [[]] ++ [[2]] == [[],[2]]
[[2]] ++ [] == [[2]] [[2]] ++ [[2]] == [[2]]
[[2]] ++ [[2]] == [[2],[2]] [[2]] ++ [] == [[2],[]]
(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))
(++):: [a]->[a]->[a]
xs ++ ys = foldr op a b
where op =
a =
b =
subs [] = [[]]
subs (x:xs) = subs xs ++ map (x:) (subs xs)
subs:: [a]->[a] subs:: [a]->[[a]]
subs:: [[a]]->[a] subs:: [[a]]->[[a]]