GHCI中的模板Haskell

时间:2014-09-10 06:55:30

标签: haskell compiler-errors ghci

我是学习Haskell的新手,所以我会提前抱歉抱怨这些愚蠢的问题 我想构建一个从字符串中删除所有大写的函数(我使用GHCI)

removeUppercase st = [c| c<-st, c 'elem' ['A..'Z']]

但是当我编译它时,它显示以下消息:

Syntax error on 'elem' 
Perhaps you intended to use TemplateHaskell
In the Template Haskell quotation 'elem'

我做错了什么?

1 个答案:

答案 0 :(得分:5)

您使用了撇号',您应该在其中使用反引号`。此外,您还缺少结束单引号:

removeUppercase st = [c | c <- st, c `elem` ['A' .. 'Z']]

请注意,您的功能与

相同
removeUppercase = filter (`elem` ['A' .. 'Z'])

这个答案是一个社区答案,因为实际问题对于StackOverflow似乎并不是主题,因为错误起源于印刷错误。