我试过(set-union (mutable-set) (mutable-set))
并且它返回了一个错误。但我认为文档说输入集只需要是generic-set
s?
这里的合同不准确,但是注意到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)