Expressing intent

Many good programming practices boil down to preparing for change or expressing intent. Novices emphasize the former, experts the latter. (John D. Cook)…

A structural approach to Free

Introduction This note presents Free from a sole structural standpoint. More specifically, we reduce the derivation of Free to the problem of designing a data type for trees without predetermined internal nodes. The reader should be familiar with recursive data types, type constructors, as well as the functor and monad…

Dependency Inversion Principle

A more language-oriented rewording of the Dependency Inversion Principle might read as follows: Only accept as input terms coming from your own language.…

Is Scheme faster than C?

What I had been learning in my Programming Language course, however, was that I really could manage my own control flow if I wanted. Furthermore, I could start with a simpler, more naive program and basically DERIVE the sophisticated one through a series of correctness-preserving program transformations. Rest of the…

Walking skeleton

"The walking skeleton is to test-drive the initial architecture." (S. Freeman, N. Pryce)…