Looking to learn my first Lisp purely for experiencing the syntax


My entire history with programming languages has been with ALGOL-likes and, to a lesser extent, relatively modern FORTRAN.

Julia is my favorite programming language, and I don’t think I’m looking for a replacement for it any time soon.

However, I’m looking to broaden my horizons a bit and understand proper Lisp a bit better. I think that I have a basic grasp on metaprogramming in context of Julia, but I’d like to experience how things work in a Lisp, with the prefix notation and all.

I’m not looking to write portable code or anything, so standardization doesn’t matter a ton to me, but decent documentation or tutorials is probably a plus. I’m looking to get into the language and start using distinctively “Lisp” things as quickly as possible. I specifically hope to deepen my understanding of ASTs and manipulating them.

I think there is a decent chunk of the Julia community that has history with Lisps, so I’m wondering if anyone has recommendations for a Lisp that I might find easy to get into in context of the fact that Julia is my preferred programming language.


edit: I am aware of femtolisp being available in julia --lisp, but I’m assuming that it might not actually be the best Lisp to learn first.


I’d probably recommend a scheme dialect then (racket maybe?). It’s pretty easy to pick up.


I second Scheme and specifically Racket. DrRacket is a nice environment that helps you along, too. The Racket community is awesome as well.

I learned Racket before coming across Julia and I’d say it’s my favorite language outside of Julia.

If you do choose Racket (or another scheme), you might consider “The Little Schemer”, a unique book building from nothing up to implementing Scheme itself. It was co-written by the creator of Racket, Matthias Felleisen. The book encompasses the spirit of Scheme/LISP more than anything else I’ve come across, and it’s one of my favorite books in my library. It truly changed the way I understand computing.


Another very book to consider is the fully-online book by one of the DrRacket creators who has published papers on the pedagogy of teaching programming languages and thus designed this book and course around an evidence based approach.