Search code examples
clojuredestructuring

Destructure a map in another map?


I have the following data structure:

{:file #<File /foo.bar>, :resolution {:width 1280, :height 1024}}

I would like to write a function that destructures the :resolution key into width and height symbols. Something like

(defn to-directory-name [{{:keys [width height]}} wallpaper]
  (str width "x" height))

Is something like that possible with destructuring?

Thanks.


Solution

  • You must first destructure :resolution, then get width and height:

    {{:keys [width height]} :resolution}