4 ms·
> it will likely change the way I think about programming For some important ideas Lisp brings to the table, I'd recommend the following approach. 1) Read thi
by avmich 7y ago
> it will likely change the way I think about programming
For some important ideas Lisp brings to the table, I'd recommend the following approach.
1) Read this - https://stevelosh.com/blog/2013/03/list-out-of-lambda/ https://stevelosh.com/blog/2013/03/list-out-of-lambda/ . If you're not familiar with lambda calculus - and if you do, you wouldn't likely ask this question - this article has a good chance to make you pause and re-evaluate importance and versatility of functions.
The benefit of this article is that the code is in a more traditional JavaScript, and it talks about just some ideas - not the whole landscape, so it's relatively short.
2) Then read this - http://www.michaelnielsen.org/ddi/lisp-as-the-maxwells-equations-of-software/ http://www.michaelnielsen.org/ddi/lisp-as-the-maxwells-equat... . It's quite a project to read this an make all tacitly suggested exercises.
The big point is that you can have an expression, which evaluates other expressions - in a chunk one can hope to bite. After this you can aim to write your own interpreters.
3) Go to Norvig's JScheme - which adds mechanisms from more real Scheme, like tail recursion optimization. By this time you'll have some practical ideas about how closures are built; Michael Nielsen uses Python's functions for that.
4) Read about continuations. Look at "Structure and interpretation of Computer Programs" for solid foundations. Look at "On Lisp" for e.g. treating of macros - both of these books are on the Internet to read. I'd also recommend checking "Paradigms of Artificial Intelligence Programming" - another book (by Norvig) available on the Internet to read - which teaches Lisp while providing plenty of examples of its use for interesting problems.
"The Little Schemer" book (an awesome series) talks about patterns for how to apply Lisp for problems; look at them.
You will probably get most out of pp.1 and 2, but the others will expand your horizons. You'd see why Lisp is at times called "a big ball of mud", and how this old language somehow manages to become inspiration for new languages, while absorbing new ideas from modern language research.