Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 为什么不是';特征会制造矛盾吗?_Clojure_Clojure Core.logic_Minikanren - Fatal编程技术网

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
    是一个类似于
    :k
    as
    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])])