Clojure 2024 年调查问卷 中分享你的想法!

欢迎!请参阅 关于 页面了解更多关于这个网站的信息。

0
core.logic

`
(deftest test-34-unify-with-metadata
(is (run* [q]

        (== q (quote ^:haz-meta-daytuhs (form form form))))
  '((^:haz-meta-daytuhs (form form form)))))

`

我不确定这个意图是什么,但用以下代码替换会使得测试失败。

`
(deftest test-34-unify-with-metadata
(is (= (run* [q]

           (== q (quote ^:haz-meta-daytuhs (form form form))))
     '((^:haz-meta-daytuhs (form form form))))))

`

我认为正确的版本可能接近那个,但我不确定。

3 个回答

0

评论由:dnolen 提供

我非常确信表单的元数据导致异常,这正是这个测试的目的。

0

评论由:jafingerhut 提供

根据目前这个测试的写法,它具有以下形式

`
(is (run* [q] (expr))

'(expr2))

`

宏 'is' 的第二个参数是可选的,如果存在,应该是一个字符串,而不是像 '(expr2)' 这样的东西。如果 (run* (link: q) (expr)) 返回 true 而没有抛出异常,测试就会通过,并且 '(expr2)' 会完全被忽略。这就是为什么测试看起来像是写错了。

0
参考: https://clojure.atlassian.net/browse/LOGIC-153 (由 jafingerhut 报告)
...