As I've said before, the great thing about Lisp is it's age. Like a good wine, Lisp has had a long time to age.
I think one of the best examples of the ripeness is R6RS' expansion process. It's a very good specification of a quite complex process, namely the processing of a number of expressions by the compiler.
The complexity stems from the fact that Lisp is at its core a multi-phase language: source code contains runtime values, such as variables and functions, as well as compile-time values, such as macros.
In a Lisp source file, one expression may be for execution at runtime, while the next is for execution at compile-time.
The intermingling of these different phases in a single source file seems to be somewhat of a historical accident, as one day we'll all be programming in a hypercode environment, but well, that's how it is.
Anyway, if you're writing a Lisp, study R6RS' expansion process and enjoy! :)
No comments:
Post a Comment
Real names (or handles), please. Anonymous comments are likely to be ignored.