; destructuring a vector
(let [[a b] ["cheese" "cream"]]
    (println "Mix" a "with" b))

; destructuring a map
(let [{:keys [appliance time]} {:appliance "oven" :temp 180 :time 40}]
    (println "Cook in" appliance "for" time "minutes"))


(def delicious-fish-recipe [["fish" "herbs"] {:appliance "pan" :time 7}])

(println delicious-fish-recipe)


; destructure vector and map
(let [[[a b] {:keys [appliance time]}] delicious-fish-recipe]
    (println "Mix" a "with" b "and cook for" time "minutes in a" appliance))


; same, but in a function.
(defn prepare [[[a b] {:keys [appliance time]}]]
    (println "Mix" a "with" b "and cook for" time "minutes in a" appliance))

(prepare delicious-fish-recipe)
