Haskell :: Sprache |
Fremder (unbekannt) |
|
Typfehler: [[a]] gegen [[[a]] -> [[a]]] 19.12.2002 (13:35 Uhr) amo | ||||
> power :: [a] -> [[a]] > power [] = [[]] > power (e:l) = power l ++ map (\e x -> (e:x)) (power l) Das gibt beim Typecheck nach dem Laden vom Script folgenden Typfehler: ERROR "uebbl08.hs":15 - Type error in application *** Expression : power l ++ map (\e x -> e : x) (power l) *** Term : power l *** Type : [[a]] *** Does not match : [[[a]] -> [[a]]] Kann das jemand erklären? Wo ist der entscheidende funktionale Unterschied zwischen map (e:) mit nur dem Konstruktor : und map (\e x -> e:x) mit Lambda - Kalkül? map scheint in dem Fall map (\e x -> e:x), aber nicht in jedem Fall, eine Liste von Funktionen zurückzugeben, obwohl Haskell die Funktionalität von map alleine nicht so angibt, sondern als (a -> b) -> [a] -> [b]. | ||||
Aufgabe 4 a) [ohne Text] 19.12.2002 (12:59 Uhr) amo | ||||
Aufgabe 4 b) [ohne Text] 19.12.2002 (12:59 Uhr) amo | ||||
Zeige Beitrag 113 |
|
0 User im Forum. Kostenloses Forumhosting von plaudern.de. Dieses Forum im eigenen Design entführen. Impressum |