a day ago
- Conditionals (if-then-else) were invented by McCarthy for Lisp and later spread to most languages.
- Functions are first-class objects in Lisp, treated as a data type like integers or strings.
- Recursion was first supported as a programming language feature in Lisp.
- Variables in Lisp are effectively pointers; values have types, not variables.
- Lisp introduced garbage-collection for automatic memory management.
- Programs are composed of expressions that each return a value, unlike the expression/statement distinction in Fortran.
- Lisp has a symbol type distinct from strings, allowing equality tests via pointer comparison.
- Code is represented using trees of symbols, enabling powerful macros (still unique to Lisp).
- The whole language is always available: no distinction between read-time, compile-time, and runtime, allowing syntax reprogramming and macros.