3
我正在嘗試編寫Datomic查詢,該查詢使用Scala包裝器Datomisca調用2個規則。結合Datomisca中的查詢規則
如何組合兩個單獨的查詢?
我的代碼如下所示:
val rule1 = Query.rules("[[(rule1 ?a) [ ... ]]]")
val rule2 = Query.rules("[[(rule2 ?b) [ ... ]]]")
Datomic.q(Query("""[:find ?x
:in $ % %
:where (rule1 ?a) (rule2 ?b)]"""), conn.db(), rule1, rule2)
這給了我一個錯誤關於「無法解析鍵rule1
」)。我只用了一個%
,但它不會編譯(類型不匹配)。
我寧願不在一個字符串中將它們合併到Query.rules
,因爲這意味着我必須重複它們以使用不同的規則組合(例如:一個查詢與兩個,另一個只有rule1)。
由於Query.rules
是一個宏,我必須使用文字字符串值,否則它將不會編譯。