In case it's not clear from the above, {:keys [...]} is a
technique for *map* destructuring of associative data structures.
(let [{:keys [a b]} {:a 1 :b 2}] [a b])
[1 2]
As documented at http://clojure.org/reference/special_forms, :keys
takes a vector of the symbols to bind.
--
You received t
On Jan 23, 2016 11:36 AM, "Harold" wrote:
>
> Hello,
>
> While destructuring yesterday, I encountered this difference:
>
> > (let [{:keys [:a :b]} '(:a 1 :b 2)] [a b])
> [1 2]
>
> > (let [{:keys [:a :b]} [:a 1 :b 2]] [a b])
> [nil nil]
>
> I have read some of the relevant documentation and some re
that's an implementation detail you should not rely on.
it only works to support keyword arguments to functions
On 23 Jan 2016 17:36, "Harold" wrote:
> Hello,
>
> While destructuring yesterday, I encountered this difference:
>
> > (let [{:keys [:a :b]} '(:a 1 :b 2)] [a b])
> [1 2]
>
> > (let [{:k