我希望能夠做這樣的事情:datomic查詢 - 功能過濾和結合
(defn match? [m] (re-find (re-pattern "so (\\d+)") m))
(datomic.api/q
'[:find ?m
:where [[?e :user/regex-match ?r]
[(user/match? ?e) ?m]]
dbconn)
這給了我什麼,我期待,但它稱之爲「是否匹配?」每個實體兩次:
(datomic.api/q
'[:find ?m
:where [[?e :user/regex-match ?r]
[(user/match? ?e) ?m]
[(user/match? ?e)]
dbconn)
添加(身份?米)代替主叫用戶/匹配?再次似乎是迄今爲止我發現的最佳解決方案。不過,不知道它在datomic查詢中的習慣嗎? – 2013-05-05 17:45:00
你是什麼意思「調用'匹配?'每個實體兩次?」你怎麼知道?您能否提供一些示例數據(即Clojure集合)? – noahlz 2013-05-06 15:51:56
另外,Clojure正則表達式不需要你轉義反斜槓。我不得不將它改成'#「(\ d +)」' – noahlz 2013-05-08 05:04:59