...どうすれば回避できますか?
(run* [q]
(featurec q {:a 1})
(featurec q {:a 2})))
戻り値
((_0
:-
(clojure.core.logic/featurec _0 {:a 2})
(clojure.core.logic/featurec _0 {:a 1})))
_0
これは、マップには少なくとも:a 1
キーと値のペアとキーと値のペアが含まれている必要があることを意味すると理解してい:a 2
ます。MultiMaps を使用しない限り、と:a
の両方にマップできないため、これは矛盾しているように見えます。指定した制約が結合であるため、ORとして読み取ることはできません。制約が矛盾しているため、結果は次のようになるはずだと想像したでしょう。これらの制約を満たすことができる値はありません。1
2
:a 1
:a 2
()
q
結果を間違って読んでいるに違いありません。