2016-04-07 15 views
0

Hier ist mein Code:Haskell Liste Mustervergleich

newcell :: [Cell] -> [Cell] 
newcell [Cell {cellPosition = cp, cellState = cs}] 
= [Cell {cellPosition = cp, cellState = (nextCellState cs)}] 

nextCellState ist nur eine Funktion, aber es sagt nicht dem Muster entsprechen könnte.

src/StudentSources/LangtonsAnt.hs:141:1: Warning: 
Pattern match(es) are non-exhaustive 
In an equation for ‘newcell’: 
    Patterns not matched: 
     [] 
     (Cell _ _) : (_ : _) 

Antwort

5

Sie passen nur das Muster einer einzelnen Zelle in einer Liste an. Sehen Sie sich die Fehlermeldung noch einmal an. Es sagt Ihnen genau, welche Muster Sie anpassen müssen.

Die leere Liste:

[] 

Und das Muster mehr als eine Zelle in der Liste:

(Cell _ _) : (_ : _)