Thinking in States
Summary
The article explores declarative programming as thinking in terms of relations and states, using Prolog and Haskell examples to illustrate how to model computations as state-based relations. It covers global states, puzzles, interpreters, compilers, and a VM approach, emphasizing declarative reasoning over imperative state mutations. It serves as a comprehensive tour of state-centric programming concepts and their practical illustrations.