为什么set-union和朋友不把mutable-sets作为参数?

问题描述 投票:1回答:1

我试过(set-union (mutable-set) (mutable-set))并且它返回了一个错误。但我认为文档说输入集只需要是generic-sets?

racket
1个回答
1
投票

这里的合同不准确,但是注意到at the beginning of the documentation

  • 所有散列集都实现了set-> stream,set-empty ?, set-member ?, set-count,subset?,proper-subset?,set-map,set-for-each,set-copy,set-copy-clear ,set-> list和set-first。
  • 另外,不可变哈希集实现了set-add,set-remove,set-clear,set-union,set-intersect,set-subtract和set-symmetric-difference。
  • 另外,mutable哈希集实现set-add!,set-remove!,set-clear!,set-union!,set-intersect!,set-subtract!和set-symmetric-difference!。

但我确实认为文档可以改进。

如果你想看到集合的实现,here的变量集不允许set-union

但请注意,将(mutable-set)置于非第一位置是很好的(这在文档中有明确说明)。例如,这有效:

> (set-union (set) (mutable-set 1 2 3) (mutable-set 4 5 6))
(set 1 5 3 2 6 4)
© www.soinside.com 2019 - 2024. All rights reserved.