3 ms·
I had exposure to Scheme during my undergraduate years taking courses in programming languages and compilers, but earlier this year I started learning Common Li
by linguae 7y ago
I had exposure to Scheme during my undergraduate years taking courses in programming languages and compilers, but earlier this year I started learning Common Lisp and I'm really enjoying the language. It's a large language and so mastering it will take a considerable amount of time, but just like C++ you don't have to know the entire language to be productive in it.
I use SBCL on macOS as my Common Lisp compiler. Regarding developer environments, although I'm a longtime vi user, I'm starting to get into Emacs and SLIME, which is an approximation to commercial Lisp environments. Common Lisp is best experienced in an environment like SLIME that has a live Lisp environment (kind of like Python's REPL on steroids). I'm pining for the days of Symbolics Genera, the operating system for Symbolics LISP machines, but sadly it's not open source and it's extremely difficult to obtain a legal copy these days.
Regarding resources, the best introduction I've found is the 1990 book "Common Lisp: A Gentle Introduction to Symbolic Computation," which is available online at https://www.cs.cmu.edu/~dst/LispBook/ https://www.cs.cmu.edu/~dst/LispBook/. This does not cover the entire language, but it covers the basics of the language, including macros. I went through this text and enjoyed its gentle introduction to the language.
I plan to purchase the following books to continue my Common Lisp education:
"Common Lisp Recipes" (2016) by Edmund Weitz (http://weitz.de/cl-recipes/ http://weitz.de/cl-recipes/) and
"The Art of the Metaobject Protocol" (1991) by Gregor Kiczales et al (https://mitpress.mit.edu/books/art-metaobject-protocol https://mitpress.mit.edu/books/art-metaobject-protocol)
For general references to the language, Guy Steele's "Common Lisp the Language, 2nd Edition" is available online at https://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html https://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html, and the Common Lisp HyperSpec is located at https://www.cs.cmu.edu/Groups/AI/html/hyperspec/HyperSpec/FrontMatter/index.html https://www.cs.cmu.edu/Groups/AI/html/hyperspec/HyperSpec/Fr....
Good luck and have fun!