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