欢迎!请查阅关于页面以了解更多关于此信息的工作方式。
嗨!
定义一个filter-keys/filter-vals函数对map有意义吗?该函数接受一个map和一个谓词,并返回满足该谓词的map。
例如,有一个名为medley的实用库,它为数组定义了这样的函数,如filter-keys、filter-vals等。
看来在核心库中缺少它们是有原因的。使用核心库,我可以用select-keys查询一个map,以获取一个具有请求键的map(如果map有这些键的话),但没有更复杂的查询函数,除了混合条件和新map构建的强而有力的reduce-kv。
Clojure set库定义了一个select函数,允许对集合应用谓词并获取一个集合作为结果。
为什么没有类似函数用于map,有想法吗?
通常,Clojure 中的大多数 map 函数将 map 视为一个索引,通过一些操作利用并保留基于键的 O(~1) 访问性能,而不是一个条目序列集合。提供需要全部遍历和修改映射的函数与这一理念有些矛盾。我不记得过去考虑过这些函数的包含。
登记为 https://clojure.atlassian.net/browse/CLJ-2733