Re: The most general form of let/let* Lassi Kortela 15 Nov 2022 20:11 UTC

> So, a way to express a general dependency graph is needed and let the
> Scheme interpreter sort out a suitable sequencing.

Aha, the syntax is isomorphic to Makefile syntax.

> I propose a form like the following one:
>
> (let-values (((d) (using c
>                              (k c)))
>                     ((a) (f))
>                     ((c) (using b
>                              (h b)))
>                     ((b) (g)))
>    <expr>)
>
> Marc

let-using

let-values-using

> “The purpose of abstracting is not to be vague, but to create a new
> semantic level in which one can be absolutely precise.”
> ― Edsger W. Dijkstra

"A programming language is low level when its programs require attention
to the irrelevant." - Perlis :)

I'm very much in favor of encoding dependencies precisely, but a robust
and convenient implementation probably requires our field to change the
standard program representation from trees to graphs. Nevertheless, this
is an interesting hack.