Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Racket 为什么集合union和friends不将可变集合作为参数?_Racket - Fatal编程技术网

Racket 为什么集合union和friends不将可变集合作为参数?

Racket 为什么集合union和friends不将可变集合作为参数?,racket,Racket,我尝试了(set union(mutable set)(mutable set)),但它返回了一个错误。但我认为文档中说输入集只需要是通用集s?这里的合同并不精确,但需要注意的是: 所有哈希集都实现set->stream、set empty?、set member?、set count、subset?、property subset?、set map、set for each、set copy、set copy clear、set->list和set first 不可变散列集还实现集添加、集删

我尝试了
(set union(mutable set)(mutable set))
,但它返回了一个错误。但我认为文档中说输入集只需要是
通用集
s?

这里的合同并不精确,但需要注意的是:

  • 所有哈希集都实现set->stream、set empty?、set member?、set count、subset?、property subset?、set map、set for each、set copy、set copy clear、set->list和set first
  • 不可变散列集还实现集添加、集删除、集清除、集并集、集相交、集减法和集对称差
  • 可变哈希集除此之外还实现了集添加!,设置删除!,清除!,设置联合!,设置相交!,设置减法!,并设置对称差
但是,我确实认为文档可以改进

如果您想查看集合的实现,其中可变集合不允许
集合并集

但是,请注意,将
(可变集)
置于非第一位置是可以的(文档中明确说明了这一点)。例如,这项工作:

> (set-union (set) (mutable-set 1 2 3) (mutable-set 4 5 6))
(set 1 5 3 2 6 4)

你试过的确切密码是什么?您得到的确切错误消息是什么?正如我所说的,我尝试了
(set union(mutable set)(mutable set))
并得到
set union:expected:(not/c set mutable?)给定的可变集:(mutable set)论点立场:1
请将此信息添加到问题中,而不是将其保留在评论中。能否提供文档链接?这将使问题变得完整。我认为答案并不清楚,原则上我不明白为什么
集合并集
不能处理可变集合,因为它们确实是泛型集合。