
Peter Verswyvelen writes:
I'm not sure, I don't know LISP in detail, but as far as I know, LISP is a fully dynamic language.
I actually meant a static language where you build your own strong types using the language itself. [...]
You might be interested in the Qi language[1]. Qi is implemented on top of Common Lisp using macros (and probably other things) and provides (optional) static type checking as well as various functional programming features (pattern matching, partial function application, etc.) The implementation, including all of the type checking, is in Common Lisp and runs during compilation (well, technically at macro-expansion time.) A Qi program is just a Common Lisp program that can choose to use the features provided by these macros. Regards, Toby. Footnotes: [1] http://www.lambdassociates.org/aboutqi.htm