您好,我正在尝试从适用于我的函数的列表中删除元素: removeBy even 1..10→1,3,5,7,9 or removeBy (=='a‘) 'b’,'a‘,'c’→"bc“
使用像map、foldl、foldr和filter这样的高阶函数,我所做的是
removeBy :: (a -> Bool) -> [a] -> [b]
removeBy function list = map function list 当我尝试运行示例1时,即使我得到
Variable not in scope: removeBy :: (a0 -> Bool) -> [a1] -> t有人能帮我吗?
发布于 2020-05-24 16:15:03
你可以只做filter (not . condition) list -也就是说,否定条件,也就是过滤not满足条件的所有值。因此,例如,您的removeBy (=='a')将与filter (not . (=='a'))相同-甚至更简单,filter (/='a')。
至于为什么您尝试的实现不起作用:map function list只是将function应用于list的每个元素,因此不能添加或删除任何元素。
https://stackoverflow.com/questions/61983177
复制相似问题