Building Languages to Solve Problems
When a problem is complex enough, the right move is to build a language for that problem. SICP's most powerful idea.
Browse posts by tag
When a problem is complex enough, the right move is to build a language for that problem. SICP's most powerful idea.
An R package where optimization solvers are first-class functions that compose through chaining, racing, and restarts.
A Python library for symbolic computation with a readable DSL, pattern matching, and a security model that separates rules from computation.
27 image commands, one constraint: read JSON, write JSON. The closure property as a generative design principle.
A command-line implementation of relational algebra for JSONL data with full support for nested structures, schema inference, and composable pipelines.
When the problem is coordinating computation across parties who can't share data, the SICP move is to build a language for it. Apertures adds one primitive — holes — to a Lisp, and gets pausable, resumable evaluation for free.
A C++20 library for composing online statistical accumulators with numerically stable algorithms and algebraic composition.
An R package that treats probability distributions as algebraic objects. They compose through standard operations. The algebra preserves distributional structure.
Iterators reduce the NxM algorithm-container problem to N+M by interposing an abstraction layer, following Stepanov's generic programming approach.