【问题标题】:Parameter queries in DatomicDatomic 中的参数查询
【发布时间】:2012-08-09 20:25:29
【问题描述】:

我是learning about Datomic queries,很好奇如何进行“参数查询”。

这是我想出的:

(d/q '[:find ?n ?x :where [?n :likes ?x] [(= ?x "pizza")]] 
  [['ethel :likes "sushi"]['fred :likes "pizza"]])

=> #<HashSet [[fred "pizza"]]>

是这样,还是有更简洁/惯用的方式来完成上述操作?

【问题讨论】:

    标签: clojure datomic


    【解决方案1】:

    答案在Datomic tutorial的“高级查询”部分

    使用:in 子句

    (d/q '[:find ?n ?x :in $ ?x :where [?n :likes ?x]] 
      [['ethel :likes "sushi"]['fred :likes "pizza"]] "sushi")
    
    => #<HashSet [[ethel "sushi"]]>
    

    :in $ ?x 是参数子句,结尾的"sushi" 绑定到?x

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多