作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在弃用 defrel 和 事实 以及迁移到 pldb 方面,希望如何更改此代码?
这是代码:
(defrel parent x y)
(facts parent ’[[dave kaylen]
[frank dave]])
(defn grandparent
[x y]
(fresh [z]
(parent x z)
(parent z y)))
;; In the REPL
user> (run* [q]
(fresh [x y]
(grandparent x y)
(== q [x y])))
;; Result
([frank kaylen])
最佳答案
(ns your.ns.here
(:require [clojure.core.logic.pldb :as pldb]
[clojure.core.logic :refer :all]))
(pldb/db-rel parent p1 p2)
(def facts
(pldb/db
[parent 'dave 'kaylen]
[parent 'frank 'dave]))
(defn grandparent
[x y]
(fresh [z]
(parent x z)
(parent z y)))
(pldb/with-db facts
(doall (run* [q]
(fresh [x y]
(grandparent x y)
(== q [x y])))))
=> ([frank kaylen])
关于clojure - 从 defrel 和事实到 core.logic.pldb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23811409/
在弃用 defrel 和 事实 以及迁移到 pldb 方面,希望如何更改此代码? 这是代码: (defrel parent x y) (facts parent ’[[dave kaylen]
我是一名优秀的程序员,十分优秀!