Both Lisp and Tcl are "everything is a-" languages. In Lisp, everything is a list. In Tcl, everything is a string. (For some values of "everything").
I guess that's really the key to allowing easy syntax extensions; it means that programs are represented in the very core data type, and you have lots of tool to manipulate it.
I guess that's really the key to allowing easy syntax extensions; it means that programs are represented in the very core data type, and you have lots of tool to manipulate it.