Came across the following in one of the clojure libs (congomongo to be exact) https://github.com/aboekhoff/congomongo/blob/master/src/somnium/congomongo.clj:464
(defn command "Executes a database command." {:arglists '([cmd {:options nil :from :clojure :to :clojure}])} [cmd & {:keys [options from to] :or {options nil from :clojure to :clojure}}] (let [db (get-db *mongo-config*) coerced (coerce cmd [from :mongo])] (coerce (if options (.command db ^DBObject coerced (int options)) (.command db ^DBObject coerced)) [:mongo to]))) My question is why do we have BOTH :arglists metadata and usual fn args destructuring? {:arglists '([cmd {:options nil :from :clojure :to :clojure}])} [cmd & {:keys [options from to] :or {options nil from :clojure to :clojure}}] -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en