Hacker News new | past | comments | ask | show | jobs | submit login
Features That Give Lisp Its Power (abhishek.geek.nz)
72 points by asimjalis on May 3, 2010 | hide | past | favorite | 8 comments



Really awesome article. I was expecting something mundane like "Lisp has closures, that's so cool, etc." but it was in depth and illustrated a lot of idioms I should have picked up earlier.


The best item in that list is a link buried deep inside it: http://chaitanyagupta.com/lisp/restarts.html

An excellent article! I thought it would be something cheesy but turned out great.


Nice writeup by Abhishek, though it still falls into the "A is cool because it has features f1, f2, ..." category (despite SlyShy thinking otherwise).

My own experience of lisp has been more like learning origami. The basic stuff is a square piece of paper. You then learn and figure out folds to create more and more complicated things. This metaphor, for me, captures both the simplicity of the basics of lisp as well as the difficulty of true mastery ... not to mention the difficulty of writing about it!


I think that's why Lisp is pleasing in a mathematical sort of way. You start with your basic axioms, which are simple to understand. The real test, however, comes from your ability to build up from those axioms an elegant, abstract framework which gets closer and closer to describing your problem set. This is why smug Lisp weenies say that in other languages, you wrap your problem around the language whereas with Lisp, you wrap your language around the problem.

There's definitely a mindset behind building Lisp programs that makes it worth using, but sadly those benefits require lots of work to arrive at and are often buried in pages of elitist, manic-depressive drivel on certain newsgroups when trying to describe why someone should use Lisp.


It's quite long time since I wrote Lisp for a living, but that reminded me of some old friends: method combination, reader macros and the loop macro.


I wasn't aware (never actually programmed lisp) of the handling of numbers being so strong. I wonder if some of that could be worked into Ruby.


Lisp is cool in many ways, but a lot of those features result in code that is hard to read and painful to debug.

I can tell nightmare stories about even benign-seeming features like multiple-value returns.

Of course, I'm sure a lot of programmers out there can use these features to write beautiful code; I'm just saying that they can also be abused.


Common Lisp definitely has a lot of "vocab" that to someone new is difficult to read. I've read The Little Schemer and the first four chapters of SICP and I feel I have a somewhat strong grip on at least the vocabulary of Scheme. I just picked up "Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp" and I quickly realized that Common Lisp is a behemoth compared to Scheme.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: