如何从数据记录中的转换函数创建集合结构?

时间:2018-08-10 15:47:29

标签: clojure datomic datalog

我想从许多模式变量中创建一个列表,以便可以比较列表而不是各个模式变量。

即不用写

[:find ?attr
 :where
 ;; Many lines of data patterns and predicates
 ;; And now, the comparison point to point
 [(= :v11 :v21)]
 [(= :v12 :v22)]
 ;; ...
 [(= :v1n :v2n)]]

写类似:

[:find ?attr
 :where
 ;; Many lines of data patterns and predicates
 ;; Create 2 lists
 ['(v11 v12 ... v1n) v1]
 ['(v21 v22 ... v2n) v2]
 [(= v1 v2)] ;; <-- Only one line for this comparison in this transformation function

我知道我应该使用该函数的fqdn,所以我想我应该使用(clojure.core/list ...)而不是'(...)。但是在所有情况下,我都会得到错误:

引用时:查询/参数中使用的非白名单符号:#{quote}。符号白名单是#{=

使用fqdn函数时:查询/参数中使用的非白名单符号:#{clojure.core / list}。符号白名单是#{=

所以:

  • 我在这里做什么错了?
  • 我可以创建模式变量值列表并将其用作另一个模式变量吗?

0 个答案:

没有答案