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