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协议。问题是Sequence或ISequence不能通用地扩展,因为不是所有的 Colls 或 Sequences 都是 KV。但是有一些地方(如IPersistentMap)可以作为EntrySeqable(Sequences 转换为条目)标记,这可能会很有用。我们已经遇到过多次这种情况。
0 点赞
by

来自 Alex Miller 通过 Twitter。

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

“这是合法的,我们将保持该功能已经继续下去”

...