2024年Clojure调查中分享您的想法!

欢迎!请参阅关于页面以获取更多有关如何使用本站的信息。

0
core.unify
当前统一只能将集合用作表达式,并仅将它们作为序列使用,这会导致根据项的顺序统一失败或成功


(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,而不是默默地将其转换为序列,并且像那样不可预测地执行。

1 答案

0
参考:https://clojure.atlassian.net/browse/UNIFY-8(由alex+import报告)
...