[英]Confusing function application and function composition in Haskell
手术
(filter (`notElem` "'\"").[(1,'a','%',"yes")])
给出一个错误。 如何将此过滤器正确地应用于该列表?
您遇到了几个严重的问题。 首先,您的语法很古怪( .
绝对不应该在那里)。 但更大的问题是,您要过滤的内容是[(Int,Char,Char,[Char])]
(即包含4个元组的列表)。
并且您的列表只有一个元素,即(1,'a','%',"yes")
。 因此过滤仍然无济于事。 当您提供过滤的函数必须是a -> Boolean
类型时,其中a
是列表中所有元素的类型。
似乎您想要某种类型的异类列表或其他内容。
的.
Haskell中的operator是函数组合-它将两个函数组合在一起。
所以你的代码
(`notElem` "'\"") . [(1,'a','%',"yes")]
看起来像notElem
函数和一些列表的组成。 那是错误的。
删除.
,并确保首先show
该列表:
> filter (`notElem` "'\"") (show [(1,'a','%',"yes")])
"[(1,a,%,yes)]"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.