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)…

A JavaScript Constructor Problem

Constructors that fail when called without new are a potential problem, and three solutions we can use are, respectively, auto-instantiation, overloading the constructor, or killing such calls with fire. Here's the rest of the article.…

begin in ES6

In order to write a begin lookalike in ES6, we can take advantage of the fact that in JavaScript arguments are evaluated from left to right. This leads to: const begin = (...args) => args[args.length - 1]; We can therefore replicate SICP's make-withdraw procedure as: const makeWithdraw = bal =>…