Clojure 为什么不是';特征会制造矛盾吗?
这是一个矛盾:Clojure 为什么不是';特征会制造矛盾吗?,clojure,clojure-core.logic,minikanren,Clojure,Clojure Core.logic,Minikanren,这是一个矛盾: (run* [q] (== q true) (== q false)) -> () 因为不可能有一个q同时是true和false 这难道不是一个矛盾吗 (run* [q] (featurec q {:k true}) (featurec q {:k false})) -> ((_0 :- (clojure.core.logic/featurec _0 {:k true}) (clojure.core.logic/fea
(run* [q]
(== q true)
(== q false))
-> ()
因为不可能有一个q同时是true
和false
这难道不是一个矛盾吗
(run* [q]
(featurec q {:k true})
(featurec q {:k false}))
-> ((_0 :- (clojure.core.logic/featurec _0 {:k true})
(clojure.core.logic/featurec _0 {:k false})))
我不知道那是什么意思。但由于映射键是唯一的,我认为不可能有一个映射可以将:k
设置为true
以及false
。我怎样才能确保第二个进球不匹配
另一个例子
我将此解释为:
是一个类似于x
as:k
的映射false
为q
true
是q
x的
的值:k
featurec
创建如下目标:
(defn is-a-foo [x v]
(featurec x {:foo v}))
(defn is-a-bar [x v]
(featurec x {:bar v}))
那么我想说:
(defn foo-implies-bar [x]
(conde [(is-a-foo [x true]) (is-a-bar [x true])])
韦伯:我错过了那里的第二个学期,默认情况下lighttable会隐藏。我想我最好结束这个问题,因为这里实际上有一个矛盾。我认为这仍然是一个好问题。
(defn foo-implies-bar [x]
(conde [(is-a-foo [x true]) (is-a-bar [x true])])