External Publication
Visit Post

Procedural Fascicle for R7RS Large Scheme

Lobsters [Unofficial] May 23, 2026
Source

Scheme Working Group 2 is pleased to announce the first draft of the second part of the R7RS-Large Foundations, the "Procedural Fascicle." This draft encompasses the familiar block programming forms, such as lambda, let, if, or, and set!.

The draft is available here:

https://r7rs.org/large/fascicles/proc/

The biggest new feature is the ability to mix definitions and expressions in bodies, such as the body of a lambda. For example, the following is now valid:

(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 '()))

We welcome any and all comments on the draft. Anyone can comment by:

  • Filing an issue on the R7RS-Large issue tracker
  • Sending mail to the Working Group 2 mailing list (you do not need a Google account)
  • Sending mail to the Scheme Reports mailing list at scheme-reports@scheme-reports.org
  • Sending mail to the corresponding member Peter McGoron at code@mcgoron.com. He will forward your comment to the public issue tracker. Please indicate if you wish to be anonymous.

Comments

Discussion in the ATmosphere

Loading comments...