[英]how to delete all elment from Haskell Map which match a condition on their value not key?
我想從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)]
感謝您的回復!
您具有所需的類型簽名,但是您不知道是否有這樣的功能。 解決該問題的方法是使用Hoogle ,這是Haskell API的搜索引擎,可讓您按類型搜索函數 。
例如,如果在Hoogle中輸入(a -> Bool) -> Map ka -> Map ka
a- (a -> Bool) -> Map ka -> Map ka
ka- (a -> Bool) -> Map ka -> Map ka
,則最上面的結果是Data.Map.filter
,在這種情況下正是您想要的結果。
它在泛化方面也相當出色,因此即使類型不完全匹配,您仍然可能會找到在前幾個匹配項中都能使用的內容。
因此,下次您要查找功能時,請嘗試將其完全搜索!
將來,您可以使用Hoogle回答這些問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.