2014-06-23 67 views
0

你能看到一些错误吗?我不能! GHC指向:解析有效代码错误

Err == Err = True 

但是这条线是好的(也许)。

data Stone = Black | White | None | Err 
instance Eq Stone where 
    Black == Black = True 
    White == White = True 
    None == None = True 
    Err == Err = True 
    _ == _ = False 
instance Show Stone where 
    show Black = "B " 
    show White = "W " 
    show Err = "E " 
    show None = "N " 

错误消息:main.hs:9:20:输入'=”

回答

5

这是典型的标签与空间问题解析错误。 所有标签用空格替换:

data Stone = Black | White | None | Err 
instance Eq Stone where 
    Black == Black = True 
    White == White = True 
    None == None = True 
    Err == Err = True 
    _ == _ = False 
instance Show Stone where 
    show Black = "B " 
    show White = "W " 
    show Err = "E " 
    show None = "N " 

编译罚款。

编译器和编辑器会以不同方式查看标签,因此请专门使用空格来避免此问题。

良好的编辑器可以设置为使用空格缩进与制表符相同的数量,自动缩进后续行匹配,并使用退格键,就好像它是后退选项卡一样。

+4

使用每个源文件顶部的“{ - #OPTIONS_GHC -fwarn-tabs# - }”。 – dfeuer