欢迎!请参阅 关于 页面以了解更多关于这个网站的信息。
嗨!
定义一个针对 map 的 filter-keys/filter-vals 函数来返回满足谓词的 map 是否有意义?
例如,有一个名为 medley 的实用库,它定义了针对 map 的此类函数,如 filter-keys、filter-vals 以及其他一些函数。
似乎没有在核心库中包含这些函数是有原因的。使用核心库,我可以使用 select-keys 通过一个键的向量查询 map,并获取包含所需键的 map(如果 map 中有这些键),但没有其他更高级的 map 查询函数,除了功能强大的 reduce-kv,它会混合条件和新 map 构建。
Clojure set 库定义了 set/select 函数,该函数允许对集合应用谓词,并返回一个集合作为结果。
有什么想法说明为什么没有类似针对 map 的函数吗?
总的来说,Clojure中的大多数映射函数将映射视为索引,以利用和保留基于键的O(~1)访问性能的方式进行操作,而不是将地图视为一个条目序列集合。提供需要完整遍历和修改映射的函数与这一点有些矛盾。我不记得过去考虑过包含这些函数在内。
登录为 https://clojure.atlassian.net/browse/CLJ-2733