Konstruktion einer Map für anonyme Funktionen in Clojure

Ich lerne gerade die Sprache und ich habe eine einfache Frage. Warum funktioniert das (Konstrukte{:key "value"}):

(#(assoc {} :key %) "value")

Aber das tut es nicht:

(#({:key %}) "value")
ArityException Wrong number of args (0) passed to: PersistentArrayMap  clojure.lang.AFn.throwArity (AFn.java:429)

Auf Python ist die letztere Syntax vollkommen gültig:

> (lambda v: {'key': v})('value')
{'key': 'value'}

edit: danke für die tollen Antworten, es ist offensichtlich, dass ich aufhören muss zu denken# als Äquivalent zulambda in Python.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage