2016-10-05 5 views
0

Ich versuche 0s am Anfang einer Liste hinzuzufügen. Mein Modul wurde erfolgreich geladen, aber wenn ich unten Funktion mit einigen Parametern versuche, bekomme ich Non-exhaustive patterns in function. Hier ist der Code, offset n ist nur eine ganze ZahlHaskell - Fehlende Muster in Funktion

extraUnicodeList :: Int->[Int] -> [Int] 
extraUnicodeList n [] = [] 
extraUnicodeList n [a] 
    | (n==0) = [a] 
    | otherwise = replicate (offset n) 0 ++ [a] 

diesem Fall bin ich fehlt noch?

Antwort

0

Sie haben den Fall mit 0 Elementen ([]) und einem Element ([a]) behandelt. Du vermisst alle anderen Fälle.

Passend nicht leere Listen jeder Größe, würden Sie das Muster x:xs verwenden, die jede nicht-leere Liste übereinstimmen, binden das erste Element zu x und die übrigen Elemente zu xs.

[x] entspricht nur Ein-Element-Listen und bindet ihr einzelnes Element an x.