|
Unwind-protect
Marc Nieper-Wißkirchen
(09 Oct 2022 09:56 UTC)
|
|
Re: Unwind-protect
Shiro Kawai
(09 Oct 2022 10:41 UTC)
|
|
Re: Unwind-protect
Marc Nieper-Wißkirchen
(09 Oct 2022 11:21 UTC)
|
|
Re: Unwind-protect
Shiro Kawai
(09 Oct 2022 12:46 UTC)
|
|
Re: Unwind-protect
Marc Nieper-Wißkirchen
(09 Oct 2022 13:07 UTC)
|
|
Re: Unwind-protect
Shiro Kawai
(09 Oct 2022 13:26 UTC)
|
|
Re: Unwind-protect
Marc Nieper-Wißkirchen
(09 Oct 2022 13:58 UTC)
|
|
Re: Unwind-protect
Shiro Kawai
(09 Oct 2022 22:50 UTC)
|
|
Re: Unwind-protect
Marc Nieper-Wißkirchen
(10 Oct 2022 05:57 UTC)
|
|
Re: Unwind-protect
Marc Nieper-Wißkirchen
(10 Oct 2022 07:24 UTC)
|
|
Re: Unwind-protect
Shiro Kawai
(10 Oct 2022 07:25 UTC)
|
|
Re: Unwind-protect
Marc Nieper-Wißkirchen
(10 Oct 2022 07:39 UTC)
|
|
Re: Unwind-protect
Shiro Kawai
(10 Oct 2022 08:57 UTC)
|
|
Re: Unwind-protect
Marc Nieper-Wißkirchen
(10 Oct 2022 08:59 UTC)
|
|
Re: Unwind-protect
John Cowan
(09 Oct 2022 15:03 UTC)
|
|
Re: Unwind-protect
Marc Nieper-Wißkirchen
(09 Oct 2022 15:13 UTC)
|
|
Re: Unwind-protect
Marc Nieper-Wißkirchen
(09 Oct 2022 15:39 UTC)
|
|
Re: Unwind-protect
Marc Nieper-Wißkirchen
(09 Oct 2022 16:13 UTC)
|
|
Re: Unwind-protect
Lassi Kortela
(09 Oct 2022 15:41 UTC)
|
|
Re: Unwind-protect
Marc Nieper-Wißkirchen
(09 Oct 2022 16:11 UTC)
|
|
Re: Unwind-protect Marc Nieper-Wißkirchen (28 Oct 2022 11:08 UTC)
|
|
Re: Unwind-protect
Vincent Manis
(28 Oct 2022 18:53 UTC)
|
|
Re: Unwind-protect
Marc Nieper-Wißkirchen
(28 Oct 2022 18:58 UTC)
|
|
Re: Unwind-protect
Vincent Manis
(28 Oct 2022 19:14 UTC)
|
|
Re: Unwind-protect
Marc Nieper-Wißkirchen
(28 Oct 2022 19:28 UTC)
|
|
Re: Unwind-protect
Arthur A. Gleckler
(28 Oct 2022 19:31 UTC)
|
Am So., 9. Okt. 2022 um 11:55 Uhr schrieb Marc Nieper-Wißkirchen
<xxxxxx@gmail.com>:
>
> John Cowan suggested that SRFI 226 should include a version of Common
> Lisp's unwind-protect suitable for Scheme.
>
> In [1], I replied after some discussion with the following proposal
> for a definition of a Scheme unwind-protect:
>
> (define-syntax unwind-protect
> (syntax-rules ()
> ((unwind-protect protected-form cleanup-form)
> (call-with-continuation-barrier
> (lambda ()
> (dynamic-wind
> (lambda () (values))
> (lambda () protected-form)
> (lambda () cleanup-form)))))))
I am currently adding unwind-protect to the spec. The actual
definition should be
(define-syntax unwind-protect
(syntax-rules ()
((unwind-protect protected-form cleanup-form ...)
(lambda ()
(dynamic-wind
(lambda () (values))
(lambda () (call-with-continuation-barrier (lambda ()
protected-form))))
(lambda () (values) cleanup-form ...))))))
because there is no reason to protect the cleanup-forms from
call/cc-havoc. The reason is that these forms are not protected
otherwise as well.
Marc