Es gibt etwas, das ich über anonyme Funktionen mit der Kurznotation # (..) nicht verstehe.
Folgendes funktioniert:
REPL> ((fn [s] s) "Eh")
"Eh"
Das geht aber nicht:
REPL> (#(%) "Eh")
Das funktioniert:
REPL> (#(str %) "Eh")
"Eh"
Was ich nicht verstehe ist, warum (# (%) "Eh") nicht funktioniert und ich gleichzeitig str in ((fn [s] s) "Eh") nicht verwenden muss.
Sie sind beide anonyme Funktionen und nehmen hier einen Parameter an. Warum benötigt die Kurzschreibweise eine Funktion, die andere nicht?
quelle