{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreiepdc2afz6zlikngn53ss5k2pq4niovuhituewxkkurvjmfmyvcta",
    "uri": "at://did:plc:wvbzyoyqr6q5pgezutm4sf3v/app.bsky.feed.post/3mmlkowpcnsx2"
  },
  "path": "/large/fascicles/proc/",
  "publishedAt": "2026-05-23T20:11:14.000Z",
  "site": "https://r7rs.org",
  "tags": [
    "lisp",
    "https://r7rs.org/large/fascicles/proc/",
    "R7RS-Large issue tracker",
    "Working Group 2 mailing list",
    "Scheme Reports mailing list",
    "Comments"
  ],
  "textContent": "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!`.\n\nThe draft is available here:\n\nhttps://r7rs.org/large/fascicles/proc/\n\nThe 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:\n\n\n    (define (map f lst)\n      (unless (list? lst)\n        (error 'map \"not a list\" lst))\n      (define (map* lst acc)\n        (if (null? lst)\n            (reverse acc)\n            (map* (cdr lst) (cons (f (car lst)) acc))))\n      (map* lst '()))\n\n\nWe welcome any and all comments on the draft. Anyone can comment by:\n\n  * Filing an issue on the R7RS-Large issue tracker\n  * Sending mail to the Working Group 2 mailing list (you do not need a Google account)\n  * Sending mail to the Scheme Reports mailing list at scheme-reports@scheme-reports.org\n  * 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.\n\n\n\nComments",
  "title": "Procedural Fascicle for R7RS Large Scheme"
}