请在2024年Clojure状态调查!中分享您的想法。

欢迎!有关如何操作的更多信息,请参阅关于 页面。

0 投票
core.unify
目前,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,预期为 {?a a, ?b b}


Unify 应该处理集合(不确定算法是否容易实现那种),或者当传入集合时抛出IllegalArgumentException,而不是静默地将它们转换为序列,表现出不可预测的行为。

1 答案

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