Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 181665
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T14:48:14+00:00 2026-05-11T14:48:14+00:00

In Common Lisp you can do this: (defun foo (bar &key baz quux) (list

  • 0

In Common Lisp you can do this:

(defun foo (bar &key baz quux)   (list bar baz quux))  (foo 1 :quux 3 :baz 2) ; => (1 2 3) 

Clojure doesn’t have keyword arguments. One alternative is this:

(defn foo [bar {:keys [baz quux]}]    (list bar baz quux))  (foo 1 {:quux 3 :baz 2}) ; => (1 2 3) 

That’s too many nested brackets to have to type and read all the time. It also requires an explicit hash-map to be passed in as an argument rather than a flat list.

What’s the most idiomatic Clojure equivalent of keyword arguments that doesn’t look someone set off a punctuation bomb?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T14:48:14+00:00Added an answer on May 11, 2026 at 2:48 pm

    A simple way to simulate keyword args in clojure is using hash-map on rest parameters like this:

    > (defn kwtest [x & e] (:foo (apply hash-map e))) #'user/kwtest > (kwtest 12 :bar 'ignored' :foo 'returned') 'returned' 

    Rich Hickey provided a macro in this message from the clojure google group that gives you keyword parameters. The corresponding thread contains information about why keyword parameters are not supported by clojure. Basically to avoid the runtime overhead. Rich explains the method I’ve shown above in this message

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

In common lisp I can do this: src-> (defmacro macro-hello () `hello) (eval '(macro-hello))
Common LISP and Emacs LISP have the atom type predicate. Scheme and Clojure don't
With common lisp and I am assuming the introspection properties. How can I add
In Peter Seibel's Practical Common Lisp , he gives this example: (do ((nums nil)
I installed ltk to Steel Bank Common Lisp with asdf-install, but I can't even
I have decided to learn (Common) Lisp a few days ago and I realize
In Common Lisp I can conditionally exclude or include code for different implementations like
This has to be a common question that all programmers have from time to
I have no idea if there exists a pattern matching function for Common Lisp,
After reading Practical Common Lisp I finally understood what the big deal about macros

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.