14 July 2026
Alex Miller
Clojure 1.13.0-alpha4 is now available! Find download and usage information on the Downloads page.
Destructuring changes and additions
Idents after & in :keys!/syms!/strs!/:keys/syms/strs must now be actual keys, not binding symbols. This is a change in syntax since alpha3. Note that symbol keys should be quoted as unadorned symbols are binding symbols.
:or now accepts key→val mappings in addition to binding→val.
Added a new :defaults name directive at top level to bind name to a map of defaults, key→val. Binding symbols in the :or map are transformed to the key value in the :defaults map. :defaults without :or is an error.
:select name, introduced in alpha3, now selects deeply, through nested maps, and fills in values for missing keys from :or. The :select map contains all keys mentioned anywhere in the binding form.
-
CLJ-2964 :select directive in map destructuring
-
CLJ-2966 :defaults directive in map destructuring
-
CLJ-2967 tests for nested destructuring
Other changes since Clojure 1.13.0-alpha3
-
CLJ-2870 Exception phase during top-level eval is miscategorized
Try it out
Update your deps.edn :deps with:
org.clojure/clojure {:mvn/version "1.13.0-alpha4"}
Start a REPL with the Clojure CLI (any version) with:
clj -Sdeps '{:deps {org.clojure/clojure {:mvn/version "1.13.0-alpha4"}}}
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.