3 ms·
After you take out s-expressions and macros, what's left is no more Lisp. What really sets Lisp apart is the ability to easily manipulate code programmatically.
by stefano 17y ago
After you take out s-expressions and macros, what's left is no more Lisp. What really sets Lisp apart is the ability to easily manipulate code programmatically.
- apotheon 17y agoS-expressions are not necessary to a LISP. The original language concept was supposed to use m-expressions (somewhat more C- or Algol-like), and s-expressions were an intermediary implementation measure. Original LISPs didn't have the macro system everyone associates with Lisp, either. . . . and Matz didn't do a very good job of removing macro capabilities, because Ruby's still halfway to CL on that score.
- pjonesdotca 17y agoActually, I think that Eric Kidd would disagree with you. He makes a great point here: http://www.randomhacks.net/articles/2005/12/03/why-ruby-is-an-acceptable-lisp http://www.randomhacks.net/articles/2005/12/03/why-ruby-is-a... that "In particular, macros which actually compile mini-languages haven’t appeared yet, although they might be possible with enough work." One can fake a great deal of LISP in Ruby but, I would like to hear more about your thesis of "Ruby's halfway to CL" for no other reason than I've been spending free time "Ruby-fying" Scheme and see more of a gap than you're implying exists.
- apotheon 17y agoThis is why I said "halfway". Ruby isn't a replacement for Common Lisp (or Scheme) in the macro department; it just gets close enough that you can see Common Lisp (or Scheme) from there. Consider that, when speaking literally of getting halfway to something, you have exactly as far to go still as the distance you've already traveled. It's not like I said Ruby was most of the way there, y'know.