嗨!我有一个小的文档改进建议
当使用常规`defn`创建关系时,我发现如果要在您的`defn`ed关系中同时使用多个关系和目标,则需要一个空的{{(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。