分享您的想法,参加2024年Clojure状态调查!

欢迎!有关如何使用本网站的一些更多信息,请参阅关于页面。

+2
文档
重新分类

keysvals的文档字符串表明这些函数可以应用于maps。但,这些函数显然也可以在map条目序列上工作。

例如,这可以工作

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

上述程序是否有效?keysvals是否保证能在map条目序列上工作?

2 个答案

+2

已选定
 
最佳答案

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

我还提交了一个工单,要么更新文档字符串,要么在类型中使其更加明确。

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

by
我们能期待 `KVReduce` 协议吗?`(reduce-kv assoc {} (filter (comp odd? val) {:a 1}))`
by
已存在一个 IKVReduce 协议。问题是 Seqable 或 ISeq 不能通用地扩展,因为并不是所有的 coll 或 seq 都是 KV。但有些地方(如 IPersistentMap)可以标记为 EntrySeqable(将 seq 转换为 entries),这可能非常有用。我们遇到过多次这种情况。
0
by

Alex Miller 通过 Twitter 发送。

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

“合法,我们会继续维持这个功能”

...