Hyperspec 中的以下声明是这样的,这是否有逻辑上的原因?“如果 list-1 和 list-2 之间存在重复,则结果中只会出现一个重复的实例。如果 list-1 或 list-2 中有重复条目,则冗余条目可能会出现,也可能不会出现结果。”
在我读到这篇文章之前,我一直假设 union 应该返回一个唯一的列表,并且对我的代码没有这样做的原因感到沮丧。删除列表之间但不在列表中的重复项似乎也很奇怪。为什么还要指定这个?
似乎人们应该能够假设 union 将产生集合元素的唯一列表,或者我错过了什么?
有关 Hyperspec 的完整页面,请参见http://clhs.lisp.se/Body/f_unionc.htm