Memories of Scheme

Kenichi Sasagawa
4 min readAug 19, 2023

While browsing the internet news, I came across an article about the chairman of Scheme’s RnRS, Mr. Cowan, stepping down from his position. Although I’ve moved away from Scheme and have been focusing on ISLisp, I used to be a Schemer myself. It brought back many nostalgic memories. Let me share some of those memories.

The First Encounter

I found an advertisement for Texas Instruments (TI) in an artificial intelligence magazine. It was about a language processing system called Scheme. At that time, I didn’t realize it was a Lisp-based language. Later, I saw an introduction to Scheme in a PC magazine. It said, “It’s a small Lisp system, easy to understand. It’s even used in MIT’s course called SICP.” There were a few available implementations mentioned back then: TI-Scheme and MacScheme.

TI-Scheme

Around 1990, I believe, I purchased TI-Scheme. In Japan, it was ported to the popular PC-9801 computer and sold as PC-Scheme. Computers at that time were not powerful. I think they had around 640KB of memory. Hard drives were still expensive, so I used floppy disks. Surprisingly, even on such limited hardware, PC-Scheme ran smoothly. It came with a lightweight Emacs-like editor called Edwin, which amazed me by showing matching parentheses. I enjoyed writing Scheme code with it.

MacScheme

Around 1994, during a trip to the US, I visited MIT in Boston during my free time. I got a campus map from the administration office. I noticed the MITPress building — it was like heaven to me. There was a section dedicated to Scheme-related books. I bought a book titled “Scheme and the Art of Programming” and a book about MacScheme. I was particularly interested in the section about drawing turtle graphics with MacScheme. When I returned to Japan, I ordered MacScheme. It was hard to come by, but eventually, I got it. It was another fantastic implementation. This was before GUIs became popular; the world was dominated by MS-DOS. Scheme ran in GUI windows, and I became obsessed with drawing graphics.

RnRS

The first Scheme implementation I bought was TI’s, based on R3RS. MacScheme followed the R4RS standard. It was very simple. There were no macros like we have now; the specification was small and straightforward. I liked the elegance in handling higher-order functions.

Later, R5RS was published. I bought Professor Kent’s book around that time. Subsequently, R6RS was published, and I felt Scheme was becoming more advanced and complex. R7RS was said to have an even larger specification. Throughout its development, they published R7RS-small, which was more than sufficient for me. Scheme was an intellectual toy for me, not for practical use. I used it to deepen my understanding of mathematics and for computational experiments. R7RS-large seemed to be becoming enormous, surpassing even the Common Lisp specification. I grew tired of it. I had been working on my own Scheme implementation, but the prospect of it becoming too large frustrated me. I decided to leave the world of Scheme.

ISLisp

Around that time, I learned about the ISLisp standard established by ISO. When I looked into it, I found that it resembled the simplicity of R4RS, the Scheme of that era. It was based on an idea by Professor Takayasu Ito at Tohoku University in Japan. I decided to focus on this. I wanted to recreate the playfulness I experienced with Scheme using ISLisp. I started developing the implementation in 2016, and now it fully complies with the ISLisp specification. I’ve shared it on GitHub under the name “Easy-ISLisp,” available under the BSD license.

The Passage of Time

While Scheme was once used for SICP classes at MIT, it has now been replaced by Python. The memory of Scheme from the R3RS era has faded, and as it transforms into a more extensive specification, Chairman Cowan has stepped down. How will the world of Scheme change? Like an observer, I watch, much like a divorced former spouse.

--

--