【发布时间】:2018-02-23 12:50:59
【问题描述】:
假设球拍的数据记录代码:
#lang datalog
price(a, 1).
a1(A) :- price(A, Price), Price > 0.
a1(A)?
我希望结果:
a1(a)
我收到一个错误:
prices_datalog.rkt:4:32: datalog: Unexpected token IDENTIFIER in: ">"
我该如何解决这个问题?
【问题讨论】:
假设球拍的数据记录代码:
#lang datalog
price(a, 1).
a1(A) :- price(A, Price), Price > 0.
a1(A)?
我希望结果:
a1(a)
我收到一个错误:
prices_datalog.rkt:4:32: datalog: Unexpected token IDENTIFIER in: ">"
我该如何解决这个问题?
【问题讨论】:
好像没有直接支持。但是您可以定义自己的运算符。
#lang datalog/sexp
(! (:- (gt X Y)
(> X Y :- #t)))
(! (price a 1))
(! (price b 2))
(! (price c 3))
(! (price d 4))
(! (:- (a2 X)
(price X Y)
(gt Y 2)))
(? (a2 X))
;; outputs
a2(c).
a2(d).
【讨论】: