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
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])
>
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
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 related blog posts,
but I am still having trouble explaining