4 ms·
Ask HN: Learning Lisp?
Hi HN,
I see almost constant references to Lisp and how expressive it is here in the community. As a software engineer, I expect that learning Lisp thoroughly, starting from fundamental principles, all the way through advanced concepts, will improve my technical skills and apply to many problems. Since the community seems to be so enamored with Lisp, I thought this would be the best place to ask:
What are the best resources for learning Lisp? Particularly, basic principles, advanced concepts, and maybe a bit of historical context as well.
Books, online or otherwise, or any blogs or articles, YouTube lectures or talks -- anything that really concisely and clearly explains things.
- informatimago 10y agohttp://cliki.net/Getting+Started http://cliki.net/Getting+Started http://cliki.net/Online+Tutorial http://cliki.net/Online+Tutorial
- mindcrime 10y agohttp://www.gigamonkeys.com/book/ http://www.gigamonkeys.com/book/
- inetsee 10y agoStructure and Interpretation of Computer Programs (aka SICP), available here https://mitpress.mit.edu/sicp/full-text/book/book.html https://mitpress.mit.edu/sicp/full-text/book/book.html Uses Scheme (which is a dialect of Lisp) as its teaching language. This book was used at MIT for their introductory programming course. It provides a fairly deep dive into the fundamentals of functional programming.
- shakna 10y agoThe lectures for SICP are also up on youtube: [0] [0] https://www.youtube.com/watch?v=2Op3QLzMgSY https://www.youtube.com/watch?v=2Op3QLzMgSY
- dontJudge 10y agoThis article is good to get an idea what lisp is all about. http://www.defmacro.org/ramblings/lisp.html http://www.defmacro.org/ramblings/lisp.html It compares lisp to XML. In that you are programming in a tree. Other languages must be parsed into a tree by the compiler, but with lisp you are already there from the get go. Programming in a tree is the "magic" that's unique to lisp. And it is a big deal.
- jonaf 10y agoThanks. These gems are particularly the kind of insight I am relying on HN for!
- bubblesocks 10y agoLisp is awesome, but I think you're doing it a disservice by comparing it to XML, which is a technology that was derived straight from Satan's bottom. Lisp is elegant. XML, not so much.
- mbrock 10y agoSome guy named Paul Graham wrote a book called "On Lisp". http://www.paulgraham.com/onlisp.html http://www.paulgraham.com/onlisp.html It's a good introduction to the Lisp way of programming using Common Lisp.
- martinflack 10y agoOthers have mentioned the correct books. When you need libraries: https://www.quicklisp.org/beta/ https://www.quicklisp.org/beta/
- cnp 10y agoCheck out the edit mode called "parinfer" -- https://shaunlebron.github.io/parinfer/ https://shaunlebron.github.io/parinfer/ It integrates nicely into a number of different editors and takes the initially weird parentheses right out
- avmich 10y agoI'd recommend http://www.michaelnielsen.org/ddi/lisp-as-the-maxwells-equations-of-software/ http://www.michaelnielsen.org/ddi/lisp-as-the-maxwells-equat... . A couple of "lower level" explanations - http://stevelosh.com/blog/2013/03/list-out-of-lambda/ http://stevelosh.com/blog/2013/03/list-out-of-lambda/ (a somewhat easier start) and http://codon.com/programming-with-nothing http://codon.com/programming-with-nothing - show where part of the power comes from.
- vs4vijay 10y agoGo for Clojure if you want to explore Functional Programming, Clojure is 21st Century Lisp. Some good resources: 1. https://github.com/hemanth/functional-programming-jargon https://github.com/hemanth/functional-programming-jargon 2. https://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming https://maryrosecook.com/blog/post/a-practical-introduction-... 3. http://www.secretgeek.net/lisp_truth http://www.secretgeek.net/lisp_truth 4. http://www.buildyourownlisp.com/ http://www.buildyourownlisp.com/ 5. OS Written is Lisp: https://github.com/froggey/Mezzano https://github.com/froggey/Mezzano 6. For Clojure: https://changelog.com/posts/rich-hickeys-greatest-hits https://changelog.com/posts/rich-hickeys-greatest-hits 7. http://yogthos.github.io/ClojureDistilled.html http://yogthos.github.io/ClojureDistilled.html 8. SICP https://mitpress.mit.edu/sicp/ https://mitpress.mit.edu/sicp/ 9. Lisp http://www.gigamonkeys.com/book/ http://www.gigamonkeys.com/book/
- jasonm23 10y agoEmacs... Largely written in Lisp and is a great resource. Also has SLIME which is a fantastic way to develop with Common Lisp. Clojure support in Emacs (via Cider) is also great. Emacs is often the first exposure that many get with Lisp (other than SICP). In terms of nice Lisps to work with I think Clojure is more active as a community than any other dialect, and so it's useful for contemporary projects and generally getting help and support and so on.