我尝试了(set-union (mutable-set) (mutable-set))
,但返回了错误。但是我认为文档说输入集只需要generic-set
s?
答案 0 :(得分:1)
此处的合同不精确,但at the beginning of the documentation指出:
- 所有哈希集均实现set-> stream,set-empty?,set-member?,set-count,subset?,proper-subset?,set-map,for-for-each,set-copy,set-复制清晰,设置->列表和设置优先。
- 不可变哈希集还实现了集添加,集删除,集清除,集联合,集相交,集减和集对称差。
- 可变哈希集还实现了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)