我正在使用 clojure 的 datomic.api。我希望重构一个有点复杂的数据日志查询,例如:
(datomic.api/q '[:find [?value ...] :in $ ?uid ?component :where
[...some clause...]
[...some other clause...]
(or-join [?entitlement ?component]
(and [...some conditional stuff...])
(and [...some other conditional stuff...]))]
db uid component)
...变成更具可读性的东西。我的愿望是将(and...)
查询的组件本地绑定到 alet
中,并通过数据日志列表中的名称来引用它们。像这样:
(datomic.api/q '[:find [?value ...] :in $ ?uid ?component :where
[...some clause...]
[...some other clause...]
(or-join [?entitlement ?component]
entitled-for-component
entitled-for-application)]
db uid component)
let
datomic.api/q 列表中的各种引用(和取消引用)都不起作用。有什么建议么?