Don't you think
  - fixed-order named parameters
could (should?) be a separate issue from
  - optional, any-order, named parameters
?

;; :x :y are fixed order, named, while :a :b are optional, named
(defn foo [:x :y & {:keys [a b]] [x, y, a, b])

(foo :x 1 :y 2)
=> [1 2 nil nil]

(foo :x 1 :a 2)
=> error

(foo :x 1 :a 3 :y 2)
=> error

(foo :x 1 :y 2 :b 3)
=> [1 2 nil 3]

Note that
(defn foo
   ([:x & {:keys [y]]   [x nil])
   ([:x :y]    [x y]))
would create 2 function symbols e.g. foo:x and foo:x:y

-- 
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

To unsubscribe, reply using "remove me" as the subject.

Reply via email to