如何解决Haskell中混乱的函数应用和函数组成
| 手术(filter (`notElem` \"\'\\\"\").[(1,\'a\',\'%\',\"yes\")])
给出一个错误。如何将此过滤器正确地应用于该列表?
解决方法
Haskell中的
.
运算符是函数组合-它将两个函数组合在一起。
所以你的代码
(`notElem` \"\'\\\"\") . [(1,\'a\',\'%\',\"yes\")]
看起来像notElem
函数和一些列表的组成。那是错误的。
除去ѭ1,并确保先对列表进行ѭ5::
> filter (`notElem` \"\'\\\"\") (show [(1,\"yes\")])
\"[(1,a,%,yes)]\"
,您遇到了一些严重的问题。首先,您的语法很古怪(绝对不应该存在.
)。但是更大的问题是,您要过滤的内容是[(Int,Char,[Char])]
类型(即包含4个元组的列表)。
您的列表只有一个元素,即(1,\"yes\")
。因此过滤仍然无济于事。当您提供过滤功能时,类型必须为a -> Boolean
,其中a
是列表中所有元素的类型。
似乎您想要某种奇怪的异类列表或其他内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。