5 ms·
I would like to learn Lisp but am easily confused with where to start. What implementation do I use? On a general level do I start with CL, schema, racket, etc
by account-5 4y ago
I would like to learn Lisp but am easily confused with where to start. What implementation do I use? On a general level do I start with CL, schema, racket, etc (apologies I know this thread is about common lisp). It's all very confusing.
I'm like this with most things, like I want to learn Forth too but have that same problem. I learned vanilla JavaScript because I didn't know where to start with the 1000+ frameworks; and as a result am learning flutter/dart for cross platform apps.
Any advice would be much appreciated!
- galdor 4y agoIn my opinion, the simplest way is to start with Common Lisp, with SBCL and the Practical Common Lisp book by Peter Seibel. Make sure you are comfortable with Emacs. It is possible to write Common Lisp without it, but Emacs and SLIME are so much better than anything else it feels like cheating.
- serf 4y ago>..simplest way >..make sure you are comfortable with Emacs. As an emacs user myself, I must say -- that's a high bar for trying to digest a new language.
- mikedelago 4y agoAgree, it's kind of a pain. There is ALIVE for vscode and VLIME for vim which are fine for just getting started. and more: https://lispcookbook.github.io/cl-cookbook/editor-support.html https://lispcookbook.github.io/cl-cookbook/editor-support.ht...
- User23 4y agoOn the plus side there is a fair amount of conceptual overlap between Elisp and Common Lisp. Learning Lisp really is more learning a complete development environment; a development philosophy even. Sure you can write Lisp as you would C, editing in a basic editor and then compiling and running the complete program in a a shell, but it’s really missing the point. While that reduces the learning curve significantly, it reduces the benefits even more.
- mikedelago 4y agoI will say, using VLIME with vim is pretty nice as well. Once you get the keys memorized, you mostly match an Emacs/SLIME experience.
- runevault 4y agoI didn't feel like relearning Emacs when I started diving back into CL so I've been using VSCode with the Alive extension and once I got it fully up and running with Quicklisp etc my SBCL has run great.
- panick21_ 4y agoRacket is a good education language and has lots of features with batteries included. You can also use Clojure if you already know Java, or ClojureScript a fantastic compile-to-JS language.
- smcn 4y agoCommon Lisp, specifically SBCL. Most popular choice (outside of Clojure and Emacs Lisp?). That's the easy answer. You'll encounter more libraries and online answers/resources which will help any growing pains. Quicklisp is used for package management and quickproject is a great starting point to get you writing lisp asap. Practical Common Lisp is a great introduction to the language. https://www.quicklisp.org/beta/ https://www.quicklisp.org/beta/ https://xach.com/lisp/quickproject/ https://xach.com/lisp/quickproject/
- tmtvl 4y agoWhile personally I got started with Lisp through the OpenCourseWare Structure and Interpretation of Computer Programs videos (and working through the book using Guile), you could also try Common Lisp: A Gentle Introduction to Symbolic Computation (<https://www.cs.cmu.edu/~dst/LispBook/ https://www.cs.cmu.edu/~dst/LispBook/>). For Common Lisp I would recommend using SBCL, it is a very high quality and popular implementation. Additional resources I would recommend: For Common Lisp: CLiki, the Common Lisp wiki: <https://cliki.net/ https://cliki.net/> For Scheme: Either the R7RS or R6RS documentation depending on which implementation you choose (Chez and Loko use R6RS, Gauche uses R7RS, and Guile can use either): <https://standards.scheme.org/ https://standards.scheme.org/>
- taeric 4y agoIf you are not looking at a specific project to get going, https://mitpress.mit.edu/9780262546379/the-little-learner/ https://mitpress.mit.edu/9780262546379/the-little-learner/ was just released and is a very fun treatment of both lisp and machine learning.
- runevault 4y agoI thought Little Learner assumed you already knew Lisp/scheme. You'd probably want to go through at LEAST Little Schemer from same author first to get the basics.
- taeric 4y agoThe first chapter goes over everything you'd need to know of scheme to get running. And it has its own choices in how they are using scheme. In particular, they curry all of the functions, it looks. My understanding is that this is on purpose for things they do later in the book. Which shows I have not finished it, yet. :D I am finding it fun, already.
- runevault 4y agoHuh interesting. And I've never seen someone make curryable functions in lisp, though I'm not surprised you can lol.
- taeric 4y agoFor machine learning, it makes a lot of sense. Effectively, training is a function that returns a function, after all.
- runevault 4y agoOh yeah not disagreeing with that, just interesting because I'd never seen anyone rig up curried functions in scheme/lisp before as it obviously isn't default behavior in a traditional lisp. I'm assuming using some sort of wrapper function or macro.