Announcing a new release of Lisp1
S-expressions are not a strict requirement for having macros in a
language. You can even add a full AST-based macro system to a highly
syntactically irregular language, like Java. The more regular the
syntax, though, the easier it is and, IMHO, the easier it is to actually
define and use macros. S-expressions are as regular as it gets, and thus
make macros very straightforward.
Not much. It has a somewhat nicer integration of its object system with
the base language. Common Lisp distinguishes between generic functions,
plain functions and methods. If I understand correctly, in Dylan they
are all integrated into the same unified notion of a method. On the
other hand, CLOS still has more complete support for metaprogramming in
terms of its metaobject protocol and user-defined method combinations.
(I am not aware of any object system that it as complete as CLOS, not
even any of the CLOS derivatives in other Lisp dialects, like Scheme.)
Apparently, Dylan's iteration framework seems to be very nice (but that
could already be added as a plain library, like
http://common-lisp.net/project/cl-containers/ ).
Maybe there's more, but I wouldn't know off the top of my head.
Nevertheless, I think it would be a much better Scheme than the R6RS
mess, if it only were based on s-expressions. However, some of the Dylan
supporters really like the more mainstream Dylan syntax, so it's not
very likely to happen...
Pascal
--
1st European Lisp Symposium (ELS'08)
http://prog.vub.ac.be/~pcostanza/els08/
My website: http://p-cos.net
Common Lisp Do***ent Repository: http://cdr.eurolisp.org
Closer to MOP & ContextL: http://common-lisp.net/project/closer/
|