Revised^7 Report on Scheme, Large: Procedural Fascicle Draft is now public
20 points
3 days ago
| 2 comments
| r7rs.org
| HN
pmcgoron
3 days ago
[-]
Hello everyone.

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 <https://codeberg.org/scheme/r7rs> * Sending mail to the Working Group 2 mailing list <https://groups.google.com/g/scheme-reports-wg2> (you do not need a google account) * Sending mail to the Scheme Reports mailing list <https://scheme-reports.simplelists.com/> and <scheme-reports@scheme-reports.org> * Sending mail to the corresponding member Peter McGoron at <code@mcgoron.com>. I will forward your comment to the public issue tracker. Please indicate if you wish to be anonymous.

reply
nextaccountic
38 minutes ago
[-]
> The biggest new feature is the ability to mix definitions and expressions in bodies, such as the body of a lambda.

Looks like Rust. It helps macros a lot

reply
bsder
2 hours ago
[-]
Delimited continuation machinery? It seems like call/cc is becoming quite a bit more acknowledged as being overkill while the more restricted shift/reset, control/prompt, F-operator stuff, etc. compose better.
reply
pmcgoron
1 hour ago
[-]
We plan to add delimited continuations in a later draft. What the actual API will look like is still in question. There is a proposal for a large API, like Racket's <https://srfi.schemers.org/srfi-226/> and a minimalistic API <https://srfi.schemers.org/srfi-248/> similar-ish to Guile's.
reply