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

Reply via email to