嗨!我有一个小小的文档改进建议
当使用常规 `defn` 创建关系时,如果要在定义好的关系中同时使用多个关系和目标,我发现需要一个空的 {{(fresh [] ...)}} 。否则,您的目标将位于 defn 的隐式 do 中,只有最后一个有任何效果。
简单示例
{{
defn-logic> (defn test [a b]
(== a 1)
(== b 2))
#'defn-logic/test
defn-logic> (run* [q] (fresh [a b]
(== q [a b])
(test a b)))
([_0 2])
defn-logic> (defn test [a b]
(fresh [])
(== a 1)
(== b 2)))
#'defn-logic/test
defn-logic> (run* [q] (fresh [a b]
(== q [a b])
(test a b)))
([1 2])
defn-logic>
}}
再次,这是完全正确和合理的,但是对于初学者来说可能有些困惑,因为隐式 do "静默失败"。我这里可能只是想要在 Wiki 文档中提醒一下。我没有找到它,但它可能已经存在了?我会很高兴将其添加到文档中并发送一个 PR。