Growing Schemes

Sat 19 Jan 2019

My favorite dialect of Lisp, Scheme, first appeared in 1975. The Revised Reports on Scheme (RnRS) are the official standardsfootnote for the language. In 1998, however, a second, parallel standards effort began: SRFI, the Scheme Requests for Implementation.

The purpose of the Scheme Requests for Implementation (SRFI) process is to help Scheme users write portable, useful code. We write concrete, detailed proposals and sample implementations for libraries and other additions to the Scheme language, and we encourage Scheme implementors to adopt them.

As of this writing, 165 Scheme standards documents have been produced by the volunteers who contribute to SRFI. Many of those documents have influenced, or have been incorporated into, the RnRS standards.

I took over as SRFI editor in April, 2015. In 2018, I realized that SRFI had been running for twenty years, so it was a natural point to write a history of the process. I submitted a paper about it (PDF) to the Scheme Workshop 2018 and gave a talk at the workshop, too (YouTube, slides). It was great fun to summarize the work that so many people have done over the years to help the language evolve, and to talk about my modest plans for improving the SRFI process.

YouTube thumbnail

This chart shows how the number of new SRFIs has grown over the years:

Cumulative SRFIs

If you're a Scheme user or implementer, please join us and help prepare Scheme for the next twenty years!


Below are all of the RnRS and IEEE standards documents for Scheme. The SRFI documents are all available at