Clojure:core.logic,conde,run 1

时间:2012-05-31 02:26:37

标签: clojure

上下文

根据core.logic文档,conde确实是condi,这意味着它可能不会以与mini-kanren相同的顺序返回。

问题

因此,如果我有某种形式:

(run 1 [q]
  (conde ...))

core.logic / mini-kanren是否有可能给我不同的结果,因为:

  • conde可以按不同的顺序返回结果
  • run 1只接受其中一个,因此两个可以有不同的第一个元素

谢谢!

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。 conde对答案顺序不作任何保证(它取决于实施,并不重要,因为所有备选方案都是并行探索的。)

在玩core.logic的过程中,由于单元测试正在承担特定的订单,所以它会多次咬我。

AFAIK,在Reasoned Schemer第2版中,conde将是第1版condi