Karte Destrukturierung in Funktionen arg Listen zur Extraktion bestimmten Schlüssels aus einer Karte ausgebildet ist und ihnen Namen wie so geben:
core> (defn foo [{my-a :a my-b :b}] {my-a my-b})
core/foo
core> (foo {:a 1 :b 2})
{1 2}
i empfehlen this tutorial. Es ist ein wenig schwierig, eine direkte Entsprechung zu ((fn[{k v}] (str k v)) {k v})
zu geben, weil die Karte viele Schlüssel und viele Werte haben könnte, so dass der Destrukturierungscode nicht in der Lage wäre zu sagen, welchen Schlüssel und welchen Wert Sie suchen. Die Strukturierung nach Schlüssel ist einfacher zu verstehen.
Wenn Sie möchten, willkürlich den ersten Eintrag in der Karte wählen Sie es extrahieren und die Liste Destrukturierung Form auf einer einzigen Karte Eintrag verwenden:
core> (defn foo [[k v]] {v k})
#'core/foo
core> (foo (first {1 2}))
{2 1}
in diesem Beispiel die Liste Destrukturierung Form [k v]
verwendet wird, weil gibt zuerst den ersten Map-Eintrag als Vektor zurück.
Ich weiß nicht, worüber Ankur spricht, aber probiere das http://stackoverflow.com/questions/12505603/how-to-destructure-a-map-as-key-and-value/12505893#12505893 – runexec