Ask YC: Scheme vs Common Lisp - power/expressivity comparison.

2 points by igorhvr ↗ HN
I would like to read your opinions about the comparison of power and expressivity of Scheme and Common Lisp. I currently only know Scheme, and I want to decide if I should spend more time and effort on this route, or if it is worth learning Common Lisp for me.

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?

3 comments

[ 5.3 ms ] story [ 18.5 ms ] thread
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...

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.