これをcore.logicで試しました
(必要 [clojure.core.logic :as l])
(l/ラン* [q]
(l/フレッシュ [abc]
(l/membero a [1])
(l/membero b [4 5])
(l/membero c [1 2])
(l/== q [ab]))))
結果が[1 4] [1 5]
しかし、そうでした[1 4] [1 4] [1 5] [1 5]
それから私はそれで遊んで始めて、これを見つけました:
(必要 [clojure.core.logic :as l])
(l/ラン* [q]
(l/フレッシュ [abc]
(l/membero a [1])
(l/membero b [4 5])
(l/membero c [1 1 1 1 1 1 1 1])
(l/== q [ab]))))
;; => ([1 4] [1 4] [1 4] [1 5] [1 4] [1 4] [1 5] [1 4] [1 5] [1 4] [1 5] [1 5] [1 5] [1 5])
[1 5]散在している場所[1 4]
何が起こっている?この繰り返しは、機能またはバグであるはずですか?