An Array-Oriented Language via the Design Recipe
summary
Argues that replacing S‑expressions with multidimensional arrays as an intertwined data example keeps HtDP’s design‑recipe structure while giving real‑world motivation, implements array primitives and a small language in Racket, follows NumPy‑style broadcasting for addition, provides shape, slicing, indexing, per‑dimension sum and multi‑arity ops, and runs a vector‑quantization demo. Assumes rectangular arrays without enforcing the invariant, tests on a small upper‑level class cohort who report more engagement.
AI-written summary · about
chapters (10)
- 0:00Introduction
- 3:26Arrays as motivating example
- 9:25Shape function with templates
- 12:32Array addition with templates
- 16:38Arrays beyond S-expressions
- 17:40Student feedback
- 19:43Course context
- 20:47Array data definition invariants
- 22:38Rank polymorphism comparison
- 24:08Arrays versus lists
related talks
45mLanguage-Oriented Programming with Racket
23mApple Array Allocation
22mDSLs in Racket: You Want It How, Now?
54mDesign Patterns vs Anti pattern in APL
28mRecords with Rank Polymorphism
51mArrays 2.0 - Opportunities and Challenges
33mPortable, type-fancy multidimensional arrays
59mThe Rhombus Programming Language
