I’m curious about your take on these various Lisps. I tried the Common Lisp track, but was not very successful - although I did not have a “functional” mindset at the time. What’s a good “beginner” Lisp?
Would also be helpful if you an idea what made it difficult for you the last time you tried. The syntax? Weirdly named functions in the standard library? What do you mean by functional mindset?
Admin Note: Moved to new thread as requested. Original comment: “Can you please ask this in a new thread and tag me? We shouldn’t derail this thread and I’m also curious what other people in the community are thinking. :)”
A good path would be to work through How to Design Programs with Racket.
Reasons I didn’t say to go right to Clojure (my favorite Lisp):
Arguably the best macro system of any language
Way better error messages
and most of all:
- The DrRacket IDE supports the use of teaching languages, which have so much pedagogical value they could revolutionize the way programming is learnt
EDIT: That said, if one’s goal is to learn a language to get a job, the case for Clojure gets much stronger (lack of Junior positions aside, its industry adoption is quite impressive). Also, being on the JVM/browser may be a plus for you if you want to be able to consume those libraries and have the reach of those platforms.
I’d say Scheme is a good ‘beginner’ Lisp - especially with a book like How to Design Programs or Structure and Interpretation of Computer Programs.
RE: Common Lisp - while the language has some facility to do functional programming, and I perhaps lean toward functional-ish solutions on the track - the language is not just a Functional language. One can write Object Oriented, Imperative, Structured etc. code in it (or develop your own abstractions for organizing code when you get advanced enough…)
And as a suggestion for a ‘Beginner’ book for Common Lisp: The Land of Lisp