Which Lisp? Beginner

4 willschetelich 4 7/5/2025, 3:13:53 PM
Hi All! This likely doesn't matter much, but I'm curious on which lisp dialect would be best for somebody new to lisp? Currently I'm comfortable in C, Python, Java, SQL stuff, and web dev stuff, but I've never touched Lisp. I don't have a 'project' with Lisp yet, but my goal is to 'get the lisp mindset' of why this language is so special. 'Think like a lisper.' Open to any and all thoughts!

Comments (4)

gus_massa · 11h ago
Oversimplifying, there are three big variants: Common Lisp, Scheme, Clojure. Each of them has a lot of somewhat similar implementations:

* Clojure: A lot of support for immutable data. It runs in the JVM so you will have a lot of the libraries you are use to. Probably the best option for you. https://clojure.org/

* Scheme, in particular Racket: Mostly functional, and in particular Racket has a lot of support to make your own variant. This is the option <allcaps>I</allcaps> prefer but I have to disclaim it's a biased recommendation. https://racket-lang.org/

* Common Lisp: I heard a lot of good things about SBCL, in particular to add anotations to make the code faster https://www.sbcl.org/

> why this language is so special

Macros, everyone use macros, too many at the beginning, but a few where they are really necessary later.

  #lang racket
  
  (define-syntax-rule
    (repeat3
      body)
    (begin
      body
      body
      body))

  (repeat3
    (println "banana"))

  ;output:
  ;"banana"
  ;"banana"
  ;"banana"
willschetelich · 10h ago
woah! Thanks so much for this! I think leaning into Racket might be cool, since it highlights the FP side of things?
mepian · 12h ago
I recommend starting with this free book which covers Common Lisp: https://gigamonkeys.com/book/
willschetelich · 10h ago
Much much appreciated!