Ask YC: Scheme vs Common Lisp - power/expressivity comparison.
1 comments
Common Lisp's main advantage over Scheme is that it has been used commercially for years, and has thus accumulated a large number of libraries. Scheme was created as a more consistent and concise Lisp, and is better suited to experimentation.
I read things to this effect in the internet, but then you have more than one Scheme system that runs (or is able to run) on top of the JVM - effectively making this problem disappear.
So, I guess I am looking for other differences, things that are essential to the languages - not just differences in libraries...
So, I guess I am looking for other differences, things that are essential to the languages - not just differences in libraries...
Don't use any of the JVM schemes (for one thing, none of them even satisfy RSR5 in compiled mode), stick to Chicken or PLT.
Specifically, I want to understand if there is anything that can be done in Common Lisp that can't be reasonably easily be expressed using a present-day Scheme system.
One thing I read somewhere is that reader macros (which I don't grasp yet) are such a thing.
Other thing would be low level macros - but there are Scheme systems that allow you to use define-macro and gensym (non-hygienic macros). Is this (even if more cumbersome) as powerful as the Common Lisp counterpart?
Finally, Common Lisp has dynamic scope - but to me it looks like everything that can be done using this could be done using macros that capture variables (which some Scheme systems also support). Am I wrong?