Workspace

Racket

language design teaching macros and Lisp style tools

Definition first

What Racket means

Racket is a programming language for writing exact instructions, often used for language design teaching macros and Lisp style tools. Start with one mental model: input goes through steps and becomes output.

Minimum run factsFile main.rktRun racket main.rktHabit Use small expressions and test transformations in the REPL
Program

An ordered set of instructions. It reads input, follows rules, and produces output.

Value and variable

A value is data. A variable is the name you use to hold and reuse that data.

Function

A named piece of work. It takes input, does one job, and can return a result.

Runtime

Racket is the place that actually runs code from main.rkt.

First readable code

Program output

entry point output syntax displayln
(displayln 42)
Output 42

Language lineage

Racket family tree

See where Racket comes from, which languages feel close, and what to learn next.

roots
SchemeLisp
currentRacketScheme teaching family
familyScheme teaching family
best used for

language design, teaching, and small precise experiments

Zero base path

1Read one rule2Predict output3Type from memory4Run checklist5Repeat with one change

Question bank

Search before practice

Pick a stage or search across the open programming bank. Jump straight to the matching drill.

18 matching questions
Q 1ChoiceStage 1 definitions

Racket practice 1

Racket question 1. Choose the statement that matches printing a value.

Q 2ChoiceStage 1 definitions

Racket practice 2

Racket question 2. Choose the statement that matches naming a value.

Q 3ChoiceStage 1 definitions

Racket practice 3

Racket question 3. Choose the statement that matches reusable function.

Q 4ChoiceStage 1 definitions

Racket practice 4

Racket question 4. Choose the statement that matches basic collection.

Q 5ChoiceStage 1 definitions

Racket practice 5

Racket question 5. Choose the statement that matches printing a value.

Q 6ChoiceStage 1 definitions

Racket practice 6

Racket question 6. Choose the statement that matches naming a value.

Q 7ChoiceStage 1 definitions

Racket practice 7

Racket question 7. Choose the statement that matches reusable function.

Q 8ChoiceStage 1 definitions

Racket practice 8

Racket question 8. Choose the statement that matches basic collection.

Q 9ChoiceStage 1 definitions

Racket practice 9

Racket question 9. Choose the statement that matches printing a value.

Q 10ChoiceStage 1 definitions

Racket practice 10

Racket question 10. Choose the statement that matches naming a value.

Q 11ChoiceStage 1 definitions

Racket practice 11

Racket question 11. Choose the statement that matches reusable function.

Q 12ChoiceStage 1 definitions

Racket practice 12

Racket question 12. Choose the statement that matches basic collection.

Q 13ChoiceStage 1 definitions

Racket practice 13

Racket question 13. Choose the statement that matches printing a value.

Q 14ChoiceStage 1 definitions

Racket practice 14

Racket question 14. Choose the statement that matches naming a value.

Q 15ChoiceStage 1 definitions

Racket practice 15

Racket question 15. Choose the statement that matches reusable function.

Q 16ChoiceStage 1 definitions

Racket practice 16

Racket question 16. Choose the statement that matches basic collection.

Q 17ChoiceStage 1 definitions

Racket practice 17

Racket question 17. Choose the statement that matches printing a value.

Q 18ChoiceStage 1 definitions

Racket practice 18

Racket question 18. Choose the statement that matches naming a value.

Multiple choice

Racket practice 1

Q 1Choicenew

Racket question 1. Choose the statement that matches printing a value.

(displayln 42)

Reference

Patterns for main.rkt

Racketracket main.rkt
Recall from memoryRead a small point then write it back without looking
Trace the codeWrite variable values line by line before you run the answer
Type it yourselfCopy less type more and fix one small error at a time

entry point output syntax displayln

Program output

(displayln 42)
  • Run the smallest file first
  • Print one known value
  • Check the output before adding more code

variables assignment types define

Values and names

(define total 42)
(displayln total)
  • Give values readable names
  • Keep one idea per line while learning
  • Trace the value before changing it

function collection List

Functions and collections

(define (add a b)
  (+ a b))

(define scores (list 40 2))
(displayln (length scores))
  • Keep functions small
  • Return useful values
  • Use the common collection before reaching for frameworks