我正在阅读Haskell书:http://learnyouahaskell.com/types-and-typeclasses
当我在翻译中输入这一行时,
removeNonUppercase st = [c | c <- st, c `elem` ['A' .. 'Z']]
我收到此错误:
parse error on input `='
导致此错误的原因是什么?
答案 0 :(得分:5)
在解释器或GHCi脚本文件(即不是Haskell模块)中定义变量或函数时,需要使用let
关键字。
> let removeNonUppercase st = [c | c <- st, c `elem` ['A' .. 'Z']]
这是因为解释器基本上就像你在全局do
- 块一样。您的代码在Haskell源文件中就可以了。
如果你在解释器之外遇到这个错误,你可能要么弄乱了缩进,要么在附近的代码中有一些其他的语法错误。