请在 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
by

来自Twitter的Alex Miller。

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

“这是合法的,并且我们将继续维护这一功能。”

...