言語に関する非常に限られた知識に基づいて、最初の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"))))
それが違いを生む場合(そして私が想像する場合)、返されるデータの私の使用特性は、ほとんど排他的に、同じ関数によって返される別のセットの和集合と共通部分を生成することを含みます。