Nit
Chris Hanson
(23 Sep 2023 18:30 UTC)
|
Re: Nit
Daphne Preston-Kendal
(23 Sep 2023 18:37 UTC)
|
Re: Nit
Daphne Preston-Kendal
(23 Sep 2023 18:50 UTC)
|
Re: Nit
Chris Hanson
(23 Sep 2023 18:53 UTC)
|
Re: Nit
Arthur A. Gleckler
(23 Sep 2023 21:22 UTC)
|
Re: Nit
Marc Nieper-Wißkirchen
(24 Sep 2023 07:56 UTC)
|
Re: Nit Daphne Preston-Kendal (24 Sep 2023 11:27 UTC)
|
Re: Nit
Marc Nieper-Wißkirchen
(24 Sep 2023 11:38 UTC)
|
Re: Nit
Marc Nieper-Wißkirchen
(24 Sep 2023 12:38 UTC)
|
Re: Nit
Daphne Preston-Kendal
(24 Sep 2023 08:51 UTC)
|
Re: Nit
Marc Nieper-Wißkirchen
(24 Sep 2023 09:14 UTC)
|
Re: Nit
Daphne Preston-Kendal
(24 Sep 2023 09:33 UTC)
|
Re: Nit
Marc Nieper-Wißkirchen
(24 Sep 2023 09:42 UTC)
|
You may be correct that the ‘fixing letrec reloaded’ algorithm, unmodified, might have these issues. However, a compiler can trivially recognize an optimization of (let ((foo (begin <expr> (lambda ...)))) …) to make foo be ‘well known’ after the transformation of letrec* to let, fix, and set! is completed. I don’t want to compromise the semantics (I don’t see a reason to forbid returning multiple times to the continuation of an expression, as long as any following definition is not reached and completely re-evaluated) for an optimization which seems possible anyway — and which I think would not be needed in the vast majority of use cases of SRFI 245 anyway. Daphne