「ClojureによるWeb開発」という本の中で、コードは
(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"))))
私の質問は次のとおりです。代替コードでは、パラメーター名の値が文字列ではないのはなぜですか? たとえば、なぜ (control text-field :id "screen name") であり、 (control text-field "id" "screen name") ではないのでしょうか?