我根据自己有限的Clojure语言知识,编写了第一个函数。我希望能够得到一些关于性能和类型使用方面的反馈。例如,我不确定是否应该使用列表或向量。
(defn actor-ids-for-subject-id [subject-id]
(sql/with-connection (System/getenv "DATABASE_URL")
(sql/with-query-results results
["SELECT actor_id FROM entries WHERE subject_id = ?" subject-id]
(let [res (into [] results)]
(map (fn [row] (get row :actor_id)) res)))))
它通过以下测试(提供适当的种子数据):
(deftest test-actor-ids-for-subject-id
(is (= ["123" "321"] (actor-ids-for-subject-id "123"))))
如果有区别的话(我认为是有区别的),我的数据使用特征几乎全部涉及到生成由同一函数返回的另一个集合的并集和交集。