Racket: The Language for Building Languages

A Friendly Introduction to Racket

Racket: The Language for Building Languages

Racket, a descendant of Lisp and Scheme, is a language for building languages. This tutorial traces its history from Lisp's 1958 birth to the modern Racket, highlighting key concepts like homoiconicity and macros. You'll learn the basics—lists, functions, recursion—and see how to create your own syntax. With links to resources like How to Design Programs, it's a friendly entry point into the Lisp family.

In Lisp, the syntax is yours.
  1. GregBuchholz

    > no special syntax for anything.

    (list '(1. . #\#)

    -5/6+7.s-8i

    `(1 ,@2)

    1@1 ;hmmm, no unquote splicing comma ;-)

    10# ;surprised?

    (list #i+1 +1i 1+i) ;complicated or complex?

    #e-1e10i ;Old MacDonald?

    "(* 9 10)" #())

  2. SA9G

    My first language, 1980 in CMU, was Pascal... quickly followed by LISP in CS/AI courses and C for EE courses. I was a big fan of MacLisp at the time, the MIT version that GLS worked on (could see his comments all over the sources). Of course GLS moved on to Scheme and wrote a few definitive papers on closures. Yeah, that was before PC's everywhere... a loooong time ago. (C++ came years and years afterwards, not a fan. I would have stayed with hardware if the ++ version of C was forced on me all those years ago.)

    GLS moved to CMU in the early 80's... I remember taking "Comparative Programming Languages" from him. Good teacher and impressive guy. In addition to the obvious, he also covered SNOBOL and APL in that course. Memories :-)

  3. M0THXYZ

    Hiii, I'm Geometridae (Astrid Motilla)! A friend from the Racket community mentioned that my article appeared here. Thank you for reading it, and I'll make sure to take all this feedback and these different perspectives into account for this and future articles! :)

    I’d also encourage you to give it a try and have some fun with it! I’m using it for some of the 3D demos in my book. It’s definitely not a silver bullet, but I’ve found it can be pretty productive.

    Personally, my favorite Lisps are Racket, Common Lisp, and Clojure, in that order. I’ve also been tempted to give Chicken Scheme a try! :)

  4. M0THXYZ

    On a more personal note, for some weird reason, Racket ended up being the language that got me one of my most important contracts. Through a whole series of butterfly-effect events, that eventually led me into CAD software development, which is where I discovered my love for metamaterials. It’s funny how these things happen!

  5. perrygeo

    > In The Amazing Digital Circus (episode 8, "hjsakldfhl"), when Kinger opens the terminal to try to reset Caine, you can see that Caine (a creative AI built in 1996) is programmed in Lisp. The file is literally named Caine-core.lisp.

    Nice touch. Explains how Caine returns in episode 9: Lisp continuations allow for graceful error recovery.

  6. fn-mote

    Much as I am a fan of Racket, this is not a friendly intro. It is a speedrun.

    When an introduction says “friendly”, I don’t expect it to assume that I know what lambda is.

    When an introduction says “friendly”, I don’t expect syntax rules to appear in it. At all.

  7. wild_egg

    > Emacs Lisp — millions of people run Lisp every day without knowing it, because their editor is a Lisp interpreter.

    Are there seriously any emacs users who are completely unaware of elisp? Isn't elisp the entire point of picking emacs?

  8. zerr

    While the language is interesting, sadly, nobody is using it in the wild. Maybe due to cumbersome deployment options? The ability to produce native standalone executables would boost its usage I believe.

More from this day

2026-08-22