Haskell中lexical error at '\a'的含义及解决方法
解决Haskell中
lexical error at character '\a'的问题 问题经过
- 刚学Haskell,添加
let loop = do ...代码块后,编译时持续报错:lexical error at character '\a' - 尝试调整报错行代码位置、删除空行等操作均无效;重启电脑后,错误提示的行号还从第9行变成了第8行
- 曾通过注释再取消注释start函数临时解决问题,但后续又复现
根因定位
最终发现是在Notepad++中误按快捷键,输入了0x07不可见控制字符(即'\a'响铃符)。这类字符肉眼无法察觉,但会被Haskell编译器判定为无效词法字符,引发报错。
解决办法
- 开启编辑器的「显示所有字符」功能(Notepad++可通过「视图」→「显示符号」→「显示所有字符」打开),找到隐藏的0x07字符并删除
- 若无法直接定位,可将代码复制到终端,用
cat -A命令查看,该命令会显示所有控制字符,找到后删除即可
内容的提问来源于stack exchange,提问作者user20694960
相关产品推荐
相关产品推荐

