A complete, hands-on Racket programming course — from "Hello World" to building interpreters, games, and web scrapers. Every example comes from the companion blog series on Learn How To.
New to Racket? Start at Part 1 and work your way down. Each folder is self-contained with runnable
.rktfiles.
- Install Racket — https://racket-lang.org/download/
- Run any example:
racket 01-introduction/hello-world.rkt
- Or open files in DrRacket (the IDE that ships with Racket) and click Run.
| # | Topic | Code | Blog Post |
|---|---|---|---|
| 1 | Introduction to Racket | 01-introduction/ |
Read |
| 2 | Functional Programming | 02-functional-programming/ |
Read |
| 3 | Data Types & Structures | 03-data-types-and-structures/ |
Read |
| 4 | Control Flow | 04-control-flow/ |
Read |
| 5 | Higher-Order Functions | 05-higher-order-functions/ |
Read |
| 6 | Macros | 06-macros/ |
Read |
| 7 | Error Handling & Debugging | 07-error-handling/ |
Read |
| 8 | Modules & Libraries | 08-modules-and-libraries/ |
Read |
| 9 | Input/Output & File Handling | 09-input-output/ |
Read |
| 10 | Capstone: Guess the Number | 10-capstone-guess-the-number/ |
Read |
| # | Topic | Code | Blog Post |
|---|---|---|---|
| 11 | Continuations & call/cc | 11-continuations/ |
Read |
| 12 | Object-Oriented Programming | 12-object-oriented-programming/ |
Read |
| 13 | Typed Racket | 13-typed-racket/ |
Read |
| 14 | Web Development | 14-web-development/ |
Read |
| 15 | Language-Oriented Programming | 15-language-oriented-programming/ |
Read |
| 16 | Lazy Evaluation & Streams | 16-lazy-evaluation/ |
Read |
| 17 | Logic Programming (Datalog) | 17-logic-programming-datalog/ |
Read |
| 18 | Concurrency & Parallelism | 18-concurrency-and-parallelism/ |
Read |
| # | Topic | Code | Blog Post |
|---|---|---|---|
| 19 | Documentation with Scribble | 19-documentation-scribble/ |
Read |
| 20 | Foreign Function Interface (FFI) | 20-foreign-function-interface/ |
Read |
| 21 | Unit Testing with RackUnit | 21-unit-testing/ |
Read |
| 22 | Databases & SQL | 22-databases-sql/ |
Read |
| 23 | Deployment & Distribution | 23-deployment/ |
Read |
| 24 | Semantics with Redex | 24-semantics-redex/ |
Read |
| 25 | GUI Programming | 25-gui-programming/ |
Read |
| 26 | Contracts | 26-contracts/ |
Read |
| 27 | Network Programming (TCP/UDP) | 27-network-programming/ |
Read |
| # | Topic | Code | Blog Post |
|---|---|---|---|
| 28 | Systems Programming | 28-systems-programming/ |
Read |
| 29 | Racket vs Scheme Standards | 29-racket-vs-scheme-standards/ |
Read |
| 30 | Performance & Profiling | 30-performance-profiling/ |
Read |
| 31 | Scientific Computing & Plotting | 31-scientific-computing/ |
Read |
| 32 | Building Parsers & Lexers | 32-parsers-lexers/ |
Read |
| 33 | Solver-Aided Programming (Rosette) | 33-solver-aided-rosette/ |
Read |
| Project | Code | Blog Post |
|---|---|---|
| Build a Lisp Interpreter | projects/lisp-interpreter/ |
Read |
| Snake Game | projects/snake-game/ |
Read |
| Web Scraper Bot | projects/web-scraper/ |
Read |
| Topic | Code | Blog Post |
|---|---|---|
| Creating Graphics | examples/graphics/ |
Read |
| Cheat Sheet | — | Read |
| Why Learn Racket? | — | Read |
| Racket vs Python vs Common Lisp | — | Read |
Follow the course: Read each blog post, then run and modify the matching code.
# Run any example
racket 05-higher-order-functions/map-filter-fold.rkt
# Run the snake game
racket projects/snake-game/snake.rkt
# Run tests
raco test 21-unit-testing/module-test-example.rktExperiment! Every file is designed to be modified. Change values, break things, and see what happens — that's how you learn Racket.
This repo is the companion code for the Scheme/Racket Programming Series on learnhowto.vercel.app.
MIT