В Clojure довольно часто для макросов и функций более высокого порядка брать функцию, сопровождаемую аргументами, а затем выполнять ее, вставляя зависимый от контекста аргумент перед предоставленными аргументами.Это делает жизнь звонящего немного легче.Таким образом, вы можете написать:
(alter visitors conj username)
вместо:
(alter visitors #(conj %1 username))
Некоторые другие формы, которые делают это: send
, doto
, update-in
, ->
alter-meta!
.