当前统一只能将集合用作表达式,并仅将它们作为序列使用,这会导致根据项的顺序统一失败或成功
(unify #{ '[aa a] '[bb b] } ; =seq=> [bb b] [aa a]
#{ '[?a a] '[?b b] } ; =seq=> [?b b] [?a a]
) ; => {?a aa, ?b bb}
(unify #{ '[a a] '[b b] } ; =seq=> [a a] [b b]
#{ '[?a a] '[?b b] } ; =seq=> [?b b] [?a a]
) ; => nil, expected {?a a, ?b b}
统一应该能够处理集合(不确定算法是否容易实现此类处理)或者当传递集合时抛出IllegalArgumentException,而不是默默地将其转换为序列,并且像那样不可预测地执行。