2016-11-07 4 views
1

Ich mache Funktion in Haskell, um das Quadrat der Liste zu bekommen. Hier ist mein CodePlatz der Liste in Haskell

sqrall :: [Int] -> [Int] 
sqrall [] = [] 
sqrall [x] = map (^2) x 

Aber dieser Code ist nicht working.i weiß nicht, wo ich bin fehlt .. Bitte helfen Sie mir ..

+1

Beachten Sie, dass die leere Liste Basisfall hier nicht notwendig ist, da 'map' ganz gut leere Listen behandelt, und in der Art und Weise von Ihnen denken. Vgl. pdoherty926's Antwort. – duplode

Antwort

2

Sie müssen die eckigen Klammern von dem nicht entfernen leeres Listenmuster auf der linken Seite Ihrer Funktionsdefinition.

Die folgende funktioniert:

sqrall x = map (^2) x 
sqrall [1,2,3] -- [1,4,9] 
+1

Das können wir auf 'sqrall = map (^ 2)' reduzieren – mnoronha