Построение карты по анонимной функции в Clojure
Я только учу язык, и у меня есть простой вопрос. Почему это работает (конструирует{:key "value"}
):
(#(assoc {} :key %) "value")
Но это не так:
(#({:key %}) "value")
ArityException Wrong number of args (0) passed to: PersistentArrayMap clojure.lang.AFn.throwArity (AFn.java:429)
На Python последний синтаксис совершенно корректен:
> (lambda v: {'key': v})('value')
{'key': 'value'}
редактировать: спасибо за отличные ответы, очевидно, мне нужно перестать думать#
как эквивалентlambda
в Python.