The article describes a reasonable approach, but requires passing keyword arguments into a function as a separate map. I wrote a macro, let-kw, which allows a more natural calling convention: (my-fun req1 req2 :kw1 kw1-val :kw2 kw2-val)<p>I opened a ticket so let-kw would be considered for clojure-contrib inclusion (<a href="http://www.assembla.com/spaces/clojure-contrib/tickets/51-Add-let-kw-to-c-c-macros" rel="nofollow">http://www.assembla.com/spaces/clojure-contrib/tickets/51-Ad...</a>). The actual (final) macro source is posted on the Clojure mailing list (<a href="http://groups.google.com/group/clojure/msg/3ee695696c5ea1ec" rel="nofollow">http://groups.google.com/group/clojure/msg/3ee695696c5ea1ec</a>).