В книге "Веб-разработка с Clojure" сказано, что код
(defn registration-page []
(layout/common
(form-to [:post "/register"]
(label "id" "screen name")
(text-field "id")
[:br]
(label "pass" "password")
(password-field "pass")
[:br]
(label "pass1" "retype password")
(password-field "pass1")
[:br]
(submit-button "create account"))))
можно переписать с помощью вспомогательной функции следующим образом:
(defn control [field name text]
(list (on-error name format-error)
(label name text)
(field name)
[:br]))
(defn registration-page []
(layout/common
(form-to [:post "/register"]
(control text-field :id "screen name")
(control password-field :pass "Password")
(control password-field :pass1 "Retype Password")
(submit-button "Create Account"))))
Мой вопрос: почему в альтернативном коде значение параметра name не является строкой? Например, почему это (управляющее текстовое поле :id "экранное имя"), а не (управляющее текстовое поле "id" "экранное имя")?