Clojure - special forms
It's easy to Google Clojure's special forms. But what's a form? My Google Fu fails me. Fogus and Houser define it as follows:
A form is any Clojure object meant to be evaluated, including but not limited to lists, vectors, maps, numbers, keywords, and symbols.
A form in Clojure is something you're going to do something with, something to evaluate. It's not a form-to-be-filled, it is, as defined by Webster 1913:
Orderly arrangement; shapeliness; also comeliness; elegance; beauty.
'The earth was without form and void --Gen. i.2.
He hath no form nor comeliness --Is. liii. 2.
A special form must be pretty special. Well, it's not special as Google would have it: 'better, greater'. They're not the most awesome forms. Back to Webster again:
Particular; peculiar; different from others; extraordinary; uncommon.
And that is in fact what they are. They are also poorly defined. Fogus and Houser again:
A special form is a form with special syntax or special evaluation rules that are typically not implemented using the base Clojure forms. An example of a special form is the . (dot) syntax used for Java interoperability.
Opaque. A special form is a special something else, typically. I did find something online: a special form is a 'form evaluated in a special way. For instance, the rules of Clojure evaluation are missing a way to do conditional evaluation, so we have the special form if.'
If the rules don't have if but we need if, shouldn't the rules just incorporate if? This probably boils down to language arcana.
I hope that as I learn it'll become clearer what a special form is and why it's special, but for now the explanations are nugatory and the actuality sclerotic.