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