"- Gratuitous use of [] in some forms; mainly defn and let. Why break the homonicity so often for no real benefit?"
[] is an array data type, () is a list. Code and data are still the same.
[] is an array data type, () is a list. Code and data are still the same.
Omitting the parentheses inside those square brackets, however, was an even worse decision wrt editability. When you can't edit a sequence of syntactically homogenous items by simple s-expression manipulations, your Lisp's design is defective.