Je viens d'écrire ma première fonction Clojure basée sur ma connaissance très limitée de la langue. J'aimerais avoir des commentaires sur la performance et l'utilisation des types. Par exemple, je ne suis pas sûr si je devrais utiliser des listes ou des vecteurs.Comment puis-je améliorer cette fonction 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)))))
Il passe le test suivant (données de données de semences appropriées):
(deftest test-actor-ids-for-subject-id
(is (= ["123" "321"] (actor-ids-for-subject-id "123"))))
Si cela fait une différence (et je pense qu'il fait) mes caractéristiques d'utilisation des données renvoyées concerneront presque exclusivement la génération l'union et l'intersection d'un autre ensemble retourné par la même fonction.
C'est génial! Très concis. – bloudermilk