Member-only story

Breaking Down Compound Procedures in Lisp

With a sprinkle of JavaScript

Joe Cardillo
3 min readMar 10, 2019

I’ve been working my way through the first chapter of Structure and Interpretation of Computer Programs. I find it helpful to take it slow and write about what I’m learning so it sinks in more deeply.

I also watched the first lecture on MIT’s OpenCourseWare YouTube channel. (You can really tell Harold Abelson is in his element.)

At section 1.1.4 on Compound Procedures I wanted to step back and break it down a little for myself.

Also, since my coding experience started more or less with JavaScript, I thought it would be interesting to work out what he’s teaching both in Lisp and JavaScript, to better understand the underlying concepts. Earlier he mentioned that one of the benefits of using Lisp is that it has “almost no syntactic structure.” So I find it helpful to compare the two languages to get a better grip on what is syntactically unique to JavaScript.

He mentions that any powerful programming language must contain three elements:

  1. Primitive objects or expressions: These would be “the simplest entities the language is concerned with,” like numbers and arithmetic operations (+, —, /, *)
  2. Means of combination: The way we combine those primitive objects, or the method “by…

--

--

Joe Cardillo
Joe Cardillo

Written by Joe Cardillo

Solutions Architect at Akamai Cloud

Responses (4)