我在 core.logic 中试过这个
(需要 [clojure.core.logic :as l])
(升/运行* [q]
(升/新鲜 [abc]
(l/membero a [1])
(l/成员 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])
(升/运行* [q]
(升/新鲜 [abc]
(l/membero a [1])
(l/成员 b [4 5])
(l/memberoc [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]
怎么了?这种重复的东西应该是一个特性还是一个错误?