Why should I learn Lisp?

Quora Feeds

Active Member
Dave Baggett

For the long answer, Paul Graham's On Lisp is the best Lisp advocacy piece I've read. I personally agree with much of what he wrote in that book, though you need to take the hyperbole with a grain of salt. (Paul really likes Lisp.)

The short answer is that Lisp is a fully programmable programming language, because Lisp programs are written in the same syntax that Lisp primitives work best with: S-expressions. This means that you can relatively easily create your own variants of Lisp tailored to your problem domain. For example, Andy Gavin created custom Lisp dialects for the Naughty Dog games that mixed high-level programming abstractions with assembly constructs and even direct manipulation of the GPU via parallel threads of execution.

Lisp derives this kind of programmability primarily from its syntax, which is simple enough for a Lisp program -- either at compile time or run time -- to examine, modify, and then run. Lisp advocates often point to the powerful Macro facilities which let programs modify themselves at compile time.

From a pedagogical standpoint, Lisp is excellent because it's feasible in one or two semesters to have students create a complete Lisp interpreter in Lisp, thereby learning the basics of how programming languages "work".

In contrast, if you try to do the same thing with, say, Python, you have to first take an extended detour into tokenizing, parsing, and abstract syntax trees. These are great topics for a more advanced class (e.g., a compiler construction course) but not so much for an introductory class.

Finally, programs are themselves just data, meaning one can reason about them formally. Getting this point across to students is incredibly important, because this observation underlies all of modern Computational complexity theory -- see, for example, the Turing machine.

See Questions On Quora

Continue reading...
 
Similar threads
Thread starter Title Forum Replies Date
N Study Buddy need someone to learn python together(beginner) Study Buddy 0
R Study Buddy Learn Python together Study Buddy 1

Similar threads

Top