0
我在實施以下功能的困難:非詳盡模式在函數聲明
type Tabuleiro = [String]
type Comandos = String
type Comando = String
type Coordenadas = String
novaCoord :: Tabuleiro -> Comandos -> Coordenadas -> Coordenadas
novaCoord l (cmd:xs) coor
| (c3 =="N") && cmd =='A' = [intToDigit(c1) , ' ',intToDigit(c2+1) , ' ',c3!!0]
| (c3 =="E") && cmd =='A' = [intToDigit(c1+1) , ' ',intToDigit(c2) , ' ',c3!!0]
| (c3 =="O") && cmd =='A' = [intToDigit(c1-1) , ' ',intToDigit(c2) , ' ',c3!!0]
| (c3 =="S") && cmd =='A' = [intToDigit(c1) , ' ',intToDigit(c2-1) , ' ',c3!!0]
| (c3 =="N") && cmd =='E' = [intToDigit(c1) , ' ',intToDigit(c2) , ' ',"O"!!0]
| (c3 =="E") && cmd =='E' = [intToDigit(c1) , ' ',intToDigit(c2) , ' ',"N"!!0]
| (c3 =="S") && cmd =='E' = [intToDigit(c1) , ' ',intToDigit(c2) , ' ',"E"!!0]
| (c3 =="O") && cmd =='E' = [intToDigit(c1) , ' ',intToDigit(c2) , ' ',"S"!!0]
| (c3 =="N") && cmd =='D' = [intToDigit(c1) , ' ',intToDigit(c2) , ' ',"E"!!0]
| (c3 =="E") && cmd =='D' = [intToDigit(c1) , ' ',intToDigit(c2) , ' ',"S"!!0]
| (c3 =="S") && cmd =='D' = [intToDigit(c1) , ' ',intToDigit(c2) , ' ',"O"!!0]
| (c3 =="O") && cmd =='D' = [intToDigit(c1) , ' ',intToDigit(c2) , ' ',"N"!!0]
| (c3 =="N") && cmd =='S' = [intToDigit(c1) , ' ',intToDigit(c2+1) , ' ',c3!!0]
| (c3 =="E") && cmd =='S' = [intToDigit(c1+1) , ' ',intToDigit(c2) , ' ',c3!!0]
| (c3 =="O") && cmd =='S' = [intToDigit(c1-1) , ' ',intToDigit(c2) , ' ',c3!!0]
| (c3 =="S") && cmd =='S' = [intToDigit(c1) , ' ',intToDigit(c2-1) , ' ',c3!!0]
where
ytotal=(length l)-1
coords=converte coor
(c1,c2,c3)=coords
y=l!!((ytotal)-(c2))
x=y!!(c1)
converte :: Coordenadas -> (Int,Int,String)
converte [] = (0,0,"S")
converte (x:y:z) =
let
coords= words (x:y:z)
c = coords !! 2
a=read (coords !! 0) :: Int -- Coord X
b=read (coords !! 1) :: Int -- Coord Y
in (a,b,c)
編譯器抱怨我沒有一個詳盡的模式。我已經嘗試過
novaCoord [] _ _ = ("0 0 S")
novaCoord _ [] _ = ("0 0 S")
novaCoord _ _ [] = ("0 0 S")
但沒有運氣!我感謝任何可以提供的幫助,通用或不是!
你也需要一個其他條款,並且converte不處理只有一個元素的列表。 – bheklilr 2014-11-23 00:31:46
@bheklilr在我需要它的地方做了詭計!甚至沒有注意到,你可以回答,所以我可以選擇正確的。 – skills 2014-11-23 00:36:35