Data-directed programming in Haskell (SICP 2.4.3)
Summary
The post revisits SICP's data-directed programming in Haskell, showing how a table-based approach to operations can be implemented with a mutable state table, then migrated to explicit tables and a type-class-style interface. It includes code examples for rectangular and polar complex numbers, an existential wrapper AnyComplex, and a discussion tying type classes to dictionaries of functions. The author notes that this approach yields shorter code and safer compile-time checks.