Procedural Fascicle for R7RS Large Scheme

Lobsters Hottest News

Summary

The Procedural Fascicle for R7RS Large Scheme is a document that forms part of the R7RS Large standard for the Scheme programming language, intended to belong to the entire Scheme community and freely copied for use in manuals and documentation.

<p>Scheme Working Group 2 is pleased to announce the first draft of the second part of the R7RS-Large Foundations, the <strong>"Procedural Fascicle</strong>." This draft encompasses the familiar block programming forms, such as <code>lambda</code>, <code>let</code>, <code>if</code>, <code>or</code>, and <code>set!</code>.</p> <p>The draft is available here:</p> <p><a href="https://r7rs.org/large/fascicles/proc/" rel="ugc">https://r7rs.org/large/fascicles/proc/</a></p> <p>The biggest new feature is the ability to mix definitions and expressions in bodies, such as the body of a <code>lambda</code>. For example, the following is now valid:</p> <pre lang="scheme"><code>(define (map f lst) (unless (list? lst) (error 'map "not a list" lst)) (define (map* lst acc) (if (null? lst) (reverse acc) (map* (cdr lst) (cons (f (car lst)) acc)))) (map* lst '())) </code></pre> <p>We welcome any and all comments on the draft. Anyone can comment by:</p> <ul> <li>Filing an issue on the <a href="https://codeberg.org/scheme/r7rs" rel="ugc">R7RS-Large issue tracker</a> </li> <li>Sending mail to the <a href="https://groups.google.com/g/scheme-reports-wg2" rel="ugc">Working Group 2 mailing list</a> (you do not need a Google account)</li> <li>Sending mail to the <a href="https://scheme-reports.simplelists.com/" rel="ugc">Scheme Reports mailing list</a> at <a href="mailto:[email protected]" rel="ugc">[email protected]</a> </li> <li>Sending mail to the corresponding member Peter McGoron at <a href="mailto:[email protected]" rel="ugc">[email protected]</a>. He will forward your comment to the public issue tracker. Please indicate if you wish to be anonymous.</li> </ul> <p><a href="https://lobste.rs/s/yfpl8d/procedural_fascicle_for_r7rs_large">Comments</a></p>
Original Article
View Cached Full Text

Cached at: 05/23/26, 10:50 PM

# The Procedural Fascicle Source: [https://r7rs.org/large/fascicles/proc/](https://r7rs.org/large/fascicles/proc/) The editors of previous reports are listed as authors of this fascicle in recognition of the substantial portions of the text that are copied directly from previous reports\. There is no intended implication that those editors, individually or collectively, support or do not support this fascicle\. We intend this report to belong to the entire Scheme community, and so we grant permission to copy it in whole or in part without fee\. In particular, we encourage implementors of Scheme to use this report as a starting point for manuals and other documentation, modifying it as necessary\.*Note*that some sections are adapted from sources with attribution requirements: see thelegalsection, if it exists, for specifics\.

Similar Articles

Rars: a Rust RAR implementation, mostly written by LLMs

Hacker News Top

A Rust implementation of the RAR compression format, written mostly by AI language models (OpenAI Codex and Claude), which would have taken years to develop manually but was completed in weeks at low cost.

The secret history of Recursion Schemes

Lobsters Hottest

A talk tracing the evolution from goto spaghetti to structured loops and finally to recursion schemes, showing how control-flow abstractions mirror data structures and why most languages still hide the best combinators.

LLM Policy for Rust Compiler

Hacker News Top

This article describes the Rust Forge, a repository of supplementary documentation for the Rust programming language, with instructions for building, contributing, and maintaining the documentation.

Racket v9.2

Lobsters Hottest

Racket v9.2 is released with improvements including safer match pattern checking, Typed Racket fixes, Unicode 17.0 support, and many other repairs and documentation updates.

Partial static single information form

Lobsters Hottest

The article discusses Partial Static Single Information (SSI) form, an extension to SSA in compilers that captures path-dependent type information. It proposes a practical shortcut for implementing Partial SSI during SSA construction in dynamic languages, specifically referencing an implementation in Ruby's ZJIT.