如何从 Map.Map 中提取密钥?

How to extract keys from Map.Map?

我想从地图中提取所有键,但我不知道如何访问这些键。我成功地从任何可折叠类型(例如地图)中获取了所有值,但我不确定如何访问仿函数中的键。

getVals :: (Foldable t) => t a -> [a]
getVals x = foldr (:) [] x

如何定义这样的函数?

getKeys :: (Map k a) -> [k]

您无法通过其 Foldable 实例获取 Map 的密钥。相反,使用 Data.Map.keys.