2017-03-05 93 views
1

我将一个函数的实际符号作为参数传递给Datomic查询。这是否令人沮丧?你会建议动态地生成整个查询吗(例子会有所帮助)?Datomic查询中的功能组合

(d/q '[:find ?effect-o 
     :in $ % ?pred-fn 
     :where 
     [_ :my/effect_o ?effect-o] 
     [(db.utilities/binary_sentiment ?pred-fn ?effect-o)]] 
    (get_db) ALL_RULES pred_fn) 

(defn binary_sentiment [binary_pred_fn score] 
    (binary_pred_fn score) 
) 

回答

0

好戏。语义是明确的,所以你应该没有问题。

+0

出于安全原因,我担心查询参数将被限制为Datomic类型。 – m33lky

+1

这可能与客户有关,但与同伴无关。同行在数据库“内部”并且信任。 –

+0

您是否认为任何来自网页的输入都应该已经被验证?由于同级在数据库“内部”,查询和db函数类似于SQL世界中的存储过程。这意味着对等方有责任验证对数据库的输入。 – m33lky