Various forms of named parameters in Clojure, kind of...

But that's very repetitive for too many named parameters, so there's this other form too:
user> (defn a [{:keys [b c]}] (- b c))
#'user/a
user> (a {:c 5 :b 11})
6

That's very useful when there's just a lot of arguments to pass around. What if you want to keep all those arguments in a map to continue passing around? There's this option:
user> (defn a [{:keys [b c] :as args}] (- (:b args) c))
#'user/a
user> (a {:c 5 :b 11})
6

These are technically not named parameters at all, but a way to destructure maps passed as an argument to a function.