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

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

0
core.unify

occurs?函数中的cond语句中,这个条件

(zip/end? z) false

出现了两次。除非我非常误解,第二个子句永远不会成功。

此外,我想知道在core.unify中composite?对字符串为true是否合理。看起来这意味着occurs?将无用地检查字符串的每个字符以寻找变量。

1 答案

0
参考:https://clojure.atlassian.net/browse/UNIFY-7 (由glchapman报告)
关于JIRA问题的评论

感谢修复死代码。至于strings在composite?中解析为true,请再次查看composite?函数中的`(string? x)`测试。我原本以为以下情况不会进行统一(即 "foo" 会被视为原子)


    user=> (require '[clojure.core.unify :as u])
    nil
    user=> (u/unify '[?x ?y ?z] "foo")
    {?x \f, ?y \o, ?z \o}


然而,我可以看出现在更改它可能被认为是一个破坏性的更改,所以不值得这么做。
...