Learning references
Current sources worth reading alongside R7RS.
This page lists useful learning resources for readers working with Scheme and R7RS.
Available Course Material
- Introductory R7RS Scheme: Layer 1Course layer overview and readiness map.
- Lesson 0: how to read Scheme before writing itSyntax conventions, Python/C/JavaScript comparisons, glossary terms, and highlighting conventions.
- Lesson 1: expressions, names, and simple testsDefinitions, composition, conditionals, simple recursion, pairs, and proper lists.
- Lesson 2: higher-order proceduresProcedures as values,
lambda, filtering, procedure-producing procedures, andlet. - Lesson 3: recursion, iteration, and growthOrder of growth, tail calls, accumulators, insertion sort, and repeated work.
- Lesson 4: data abstraction and pair diagramsConstructors, selectors, abstraction barriers, pairs, lists, and generated diagrams.
- Lesson 5: hierarchical data and tree shapesNodes, roots, leaves, n-way trees, tree ADTs, nested lists, and tree mapping.
Modern Scheme and R7RS
- R7RS smallThe baseline report for portable examples on r7.rs.
- The Scheme Programming LanguageA substantial Scheme book and reference by Kent Dybvig.
- Teach Yourself Scheme in Fixnum DaysA compact Scheme tutorial; older examples need R7RS review before reuse.
- An Introduction to Scheme and its ImplementationAn older broad introduction covering basics, lists, recursion, lexical scope, tail recursion, macros, continuations, and iteration.
Program Design
- How to Design ProgramsA disciplined approach to program design in the Scheme/Racket family.
- The Racket GuideUseful adjacent material for the wider Scheme-descended ecosystem; Racket-specific content is not R7RS.
Types and Relations
- The Little TyperDependent type ideas and the Pie language; useful adjacent material, not R7RS Scheme.
- miniKanren.orgPrimary entry point for miniKanren, microKanren, talks, papers, tools, and book references.
Examples and AI Case Studies
- Grinnell Workshop on Scheme archiveHistorical handouts, exercise sets, solutions, algorithms, GPS, and a portable random-number generator.
- Portable random-number generator handoutA useful historical reference for explaining closures, state, seeds, and linear congruential generators.
- PAIP source-code indexPeter Norvig's source-code archive for Paradigms of Artificial Intelligence Programming, including General Problem Solver examples.
Classic Scheme
R5RS history, SICP-era teaching, Simply Scheme, Brian Harvey material, early reports, and Lambda Papers belong at r5.rs.