解析有效代码中的错误 [英] Parse error in valid code

查看:104
本文介绍了解析有效代码中的错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你能看到一些错误吗?我不能! GHC指出:

  Err == Err = True 

但这条线是可以的(也许)。

  data Stone = Black |白色|无| Err 
实例Eq Stone其中
黑色==黑色=真实
白色==白色=真实
无==无=真实
Err == Err = True
_ == _ = False
实例显示Stone其中
显示黑色=B
显示白色=W
显示Err =E
显示None =N

错误消息:main.hs:9:20:parse error on输入'='

解决方案

这是经典的标签与空格问题。
用空格替换所有标签:

  data Stone = Black |白色|无| Err 
实例Eq Stone其中
黑色==黑色=真实
白色==白色=真实
无==无=真实
Err == Err = True
_ == _ = False
实例显示Stone其中
显示黑色=B
显示白色=W
显示Err =E
显示None =N

编好。



编译器和您的编辑器会以不同的方式查看选项卡,因此请专门使用空格以避免此问题。



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


Can you see some error? I can't! GHC points at:

Err == Err = True

But this line is ok (maybe).

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 "

Error message: main.hs:9:20: parse error on input `='

解决方案

It's the classic tabs versus spaces issue. Replace all your tabs with spaces:

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 "

compiles fine.

The compiler and your editor see tabs differently, so use spaces exclusively to avoid the problem.

Good editors can be set up to use spaces to indent to the same amount that a tab would, autoindent subsequent lines to match, and use backspace as if it were a backtab.

这篇关于解析有效代码中的错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆