147
You can also destructure rest arguments as a map since Clojure 1.2 [ref]. This lets you name and provide defaults for function arguments:
(defn string->integer [s & {:keys [base] :or {base 10}}]
(Integer/parseInt s base))
Now you can call
(string->integer "11")
=> 11
or
(string->integer "11" :base 8)
=> 9
You can see this in action here: https://github.com/Raynes/clavatar/blob/master/src/clavatar/core.clj (for example)