The number one feature that every Lisper brags about is that Lisp is homoiconic, which is just a fancy word for Lisp code is Lisp data. Code written in Lisp is just a bunch of nested lists, for example: (+ 1 2 3 4 (* 2 3)) Over here we just have a list of 6 elements. The Lisp reader can easily read that form and evaluate it, which produce the value 16. You might be wondering "Ok?, so code is data, what's the big deal?". Well, the big deal is that powerful macros are now possible. A lot of people think of C-like macros when they hear the word macros, but Lisp Macros are much more elegant and powerful. C-like macros are basically text substitution facilities. Lisp macros are special Lisp functions that don't evaluate their arguments. Basically, macros receive a data structure that is not evaluated, manipulate it, and then return a data structure that is meant to be evaluated. So that means you now have the power of syntactic abstraction. You can extend the languag...
Some tribes of the programmer clan.