Clojure.spec: A Lisp Flavoured Type System
summary
Claim: spec turns Clojure into a runtime-first type system, weaving regular-expression-like specs over arbitrary data with parsing with derivatives and arbitrary predicates. It provides validation, generators for generative testing à la QuickCheck, destructuring, data-macro transformations and pluggable error reports. Implementations exist: generators, runtime validators, static-analysis experiments and spec inference from examples; the ecosystem works now but remains early and exploratory, with real tools already built on top.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 1:32Communication
- 3:59Twists
- 4:44Closure Async
- 5:14Live Programming Environment
- 5:28List Specifics
- 6:06Building Blocks
- 6:37Structuring
- 7:31Data macros
- 8:21Data structure
- 8:53Unified form
- 9:16Data separation
- 11:09Summary
related talks
24mTypes as a Specification Language for Creativity
40mDesigning in Clojure - an experience report
42mDesign in Practice in Practice
56mBuilding My Own Clojure Tools
16mClojure vs Design Patterns
32mThe Elements of Style in Programming
35mScalable Design Systems with TypeScript
44mTulip: A Language for Humans
