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.