mapa desestructuración en funciones arg listas está diseñado para extraer ciertas claves de un mapa y dándoles nombres de esta manera:
core> (defn foo [{my-a :a my-b :b}] {my-a my-b})
core/foo
core> (foo {:a 1 :b 2})
{1 2}
Recomiendo this tutorial. Es un poco difícil dar un equivalente directo a ((fn[{k v}] (str k v)) {k v})
porque el mapa podría tener muchas claves y muchos valores, por lo que el código de desestructuración no podría decir qué clave y qué valor buscaba. La desestructuración por clave es más fácil de razonar.
Si desea elegir arbitrariamente la primera entrada en el mapa se puede extraer y utilizar el formulario de lista de desestructuración en un solo mapa de entrada:
core> (defn foo [[k v]] {v k})
#'core/foo
core> (foo (first {1 2}))
{2 1}
en este ejemplo el formulario de lista de desestructuración [k v]
se utiliza porque primero devuelve la primera entrada del mapa como un vector.
No sé de qué está hablando Ankur, pero prueba esto http://stackoverflow.com/questions/12505603/how-to-destructure-a-map-as-key-and-value/12505893#12505893 – runexec