2024年Clojure状况调查!中分享您的想法。

欢迎!请参阅关于页面了解更多关于其工作方式的信息。

+2
文档
重新分类

keysvals的文档字符串指示这些函数可应用于映射。但是,这些函数显然也适用于映射条目的序列。

例如,这可以工作

(keys (filter (comp odd? val) {:a 1 :b 2 :c 3}))

上面的程序有效吗?keysvals是否有保证适用于映射条目的序列?

2 答案

+2

被选定
 
最佳答案

是的,这是合法的,并且您可以信赖它。

我还记录了工单,要更新文档字符串或甚至在类型中使其更加明确

https://clojure.atlassian.net/browse/CLJ-2592

by
我们能否期待 `KVReduce` 协议?`(reduce-kv assoc {} (filter (comp odd? val) {:a 1}))`
by
已经存在一个 IKVReduce 协议。问题是 Seqable 或 ISeq 不能被泛化扩展,因为并非所有的集体或序列都是 KV。但是有些地方(如 IPersistentMap)可以标记为 EntrySeqable(序列到条目),这可能非常有用。我们已经遇到这种情况多次。
0 votes
by

来自 Alex Miller 的推特。

https://twitter.com/puredanger/status/1330570384773681152?s=21

“可以这样,我们将继续维持此功能。”

...