Am So., 9. Okt. 2022 um 17:03 Uhr schrieb John Cowan <[email protected]>:

>> Thanks; with my definition, I would have to code it like
>> (unwind-protect protected-form (begin (values) cleanup-form ...)) as
>> otherwise definitions would be allowed by the definition making it too
>> easy to write non-portable code.
>
>
> Eh?  `Begin` doesn't allow declarations; only `lambda` and the `let` family 
> do.

My proposed macro has

(lambda ()
  <cleanup-form>)

as a subform.  Expanding a begin in this context would have the
meaning of the first form of begin in section 4.2.3 of R7RS ([1]).

--

[1] In fact, the first form of begin should probably not have been
listed in this section at all but somewhere else because it is not an
expression form.

Reply via email to