Software Design for Flexibility: How to Avoid Programming Yourself into a Corner
by Chris Hanson and Gerald Jay Sussman, MIT Press, 2021
https://www.amazon.com/Software-Design-Flexibility-Programming-Yourself-ebook/dp/B089423GC6
Sample code mirrored from:
See associated course archive:
MIT 6.945 Adventures in Advanced Symbolic Programming, Spring 2009