【问题标题】:racket datalog - is '>' supported?球拍数据记录 - 是否支持“>”?
【发布时间】: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: ">"

我该如何解决这个问题?

【问题讨论】:

    标签: racket datalog


    【解决方案1】:

    好像没有直接支持。但是您可以定义自己的运算符。

    #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).
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      • 2018-06-06
      • 2021-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多