Hacker News new | ask | show | jobs
by gus_massa 346 days 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"
1 comments

woah! Thanks so much for this! I think leaning into Racket might be cool, since it highlights the FP side of things?