我想删除Data.Map
匹配特定条件的所有元素.我们说foobar
是这个函数,这是他需要的行为:
foobar :: (a -> Bool) -> Map k a -> Map k a
foobar (>= 20) $ fromList [("john",3),("sasha",8),("mary",33),("philip",20)]
-- the expected result is fromList [("john",3),("sasha",8)]
Run Code Online (Sandbox Code Playgroud)
谢谢你的回复!
您有一个所需的类型签名,但您不知道是否有这样的功能.该问题的解决方案是使用Hoogle,这是Haskell API的搜索引擎,可让您按类型搜索功能.
例如,如果您进入(a -> Bool) -> Map k a -> Map k a
Hoogle,则最重要的结果是Data.Map.filter
,在这种情况下恰好是您想要的结果.
它在推广方面也相当不错,所以即使类型不完全匹配,你仍然可能会找到一些在前几个匹配中起作用的东西.
因此,下次您正在寻找功能时,请先尝试将其连接起来!