2

コンテクスト

core.logicのドキュメントによると、condeは実際にはcondiです。つまり、ミニかんれんと同じ順序で戻らない可能性があります。

質問

したがって、私が何かの形をしている場合:

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

core.logic / mini-kanrenが次の理由で異なる結果をもたらす可能性はありますか?

  • condeは異なる順序で結果を返すことができます
  • 実行1は、そのうちの1つのみを取得するため、2つは異なる最初の要素を持つ可能性があります

ありがとう!

4

1 に答える 1

1

はい、可能です。conde回答の順序は保証されません(実装に大きく依存し、すべての選択肢が並行して検討されるため、問題にはなりません)。

core.logicで遊んでいる間、ユニットテストは特定の順序を想定しているため、何度も噛み付きます。

AFAIKは、Reasoned Schemerの第2版でconde、第1版になりcondiます。

于 2012-05-31T11:36:12.727 に答える