我剛剛寫了我的第一個Clojure函數,它基於我對語言非常有限的知識。我會喜歡一些關於性能和類型使用的反饋。例如,如果我應該使用列表或向量,我不確定 。我該如何改進這種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"))))
如果它的確與衆不同(和我想象它)返回的數據我的使用特性將幾乎全部涉及產生由同一個函數返回的另一個集合的並集和交集。
這太棒了!非常簡潔。 – bloudermilk 2012-07-12 18:47:54