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)

Re: Nit Daphne Preston-Kendal 24 Sep 2023 11:27 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