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

let in ES6

A possible way of expressing Scheme let expressions, such as (let ((x 3) (y 5)) (+ x y)) is to use ES6 default parameters: ((x = 3, y = 5) => x + y)() It is possible to go one step further by defining an auxiliary let_ function as: const let_ = f => f(…