在Datalog Racket中,是否可以将定义为"#lang datalog“的文件x中定义的知识库导入到另一个声明为"#lang racket”的文件y中?
例如:
;; x.rkt
#lang datalog
parent(john, douglas).
;; y.rkt
#lang racket
(require datalog)
(require "x.rkt")
;;(datalog parent (? (X douglas))) DOES NOT WORK发布于 2020-10-28 00:17:15
从#lang datalog导出的理论始终命名为theory,因此您的y.rkt应该是:
#lang racket
(require datalog
"x.rkt")
(datalog theory (? (parent X douglas)))请注意,我们正在查询parent表,因此需要将其指定为(? (parent X douglas))。(? (X douglas))不正确。
最后,如果您希望重命名从x.rkt导出的理论,您可以使用rename-in
#lang racket
(require datalog
(rename-in "x.rkt" [theory my-thy]))
(datalog my-thy (? (parent X douglas)))https://stackoverflow.com/questions/64554986
复制相似问题