Я кое-что не понимаю в анонимных функциях, использующих короткую запись # (..)
Следующие работы:
REPL> ((fn [s] s) "Eh")
"Eh"
Но это не так:
REPL> (#(%) "Eh")
Это работает:
REPL> (#(str %) "Eh")
"Eh"
Я не понимаю, почему (# (%) "Eh") не работает, и в то же время мне не нужно использовать str в ((fn [s] s) "Eh")
Это обе анонимные функции, и обе они принимают один параметр. Почему для сокращенной записи нужна функция, а для другой - нет?
источник