操作
(filter (`notElem` "'\"").[(1,'a','%',"yes")])
给出错误。如何正确地在该列表上应用此过滤器?
答案 0 :(得分:2)
你有几个严重的问题。首先,你的语法很古怪(.
绝对不应该存在)。但更大的问题是,您尝试过滤的是[(Int,Char,Char,[Char])]
类型(即包含4元组的列表)。
您的列表只有一个元素,即(1,'a','%',"yes")
。所以过滤无论如何都是无用的。当您提供的过滤功能必须是a -> Boolean
类型时,其中a
是列表中所有元素的类型。
好像你想要某种不稳定的异类列表或其他东西。
答案 1 :(得分:1)
Haskell中的.
运算符是函数组合 - 它将两个函数组合在一起。
所以你的代码,
(`notElem` "'\"") . [(1,'a','%',"yes")]
看起来像notElem
函数和一些列表的组成。那是错的。
删除.
,并确保首先show
列表:
> filter (`notElem` "'\"") (show [(1,'a','%',"yes")])
"[(1,a,%,yes)]"