Using destructuring techniques
Destructuring can be used in defn
and let
. This technique provides flexible ways to extract values for bodies of functions or let
expressions. Though destructuring looks a bit unusual for beginners of Clojure and programmers of other languages, it is effective for extracting desired values from the structural data of arguments and binding values.
Getting ready
This recipe uses the math.numeric-tower
and core.match
functions, so change the :dependency
in the project.clj
file as follows and restart the REPL, and be ready:
:dependencies [[org.clojure/clojure "1.8.0"] [org.clojure/math.numeric-tower "0.0.4"] [org.clojure/core.match "0.3.0-alpha4"] ]
How to do it...
Here, let's learn how to do sequential destructing and map destructing.
Sequential destructuring
Sequential destructuring is for extracting desired elements from sequence collections. In the following code, variables x
, y
, z
bind to 1
, 2
, 3
:
(let [[x y z] [1 2 3]] ...