Re: CL multiple-value-call Marc Nieper-Wißkirchen 30 Aug 2020 08:31 UTC

Am So., 30. Aug. 2020 um 04:48 Uhr schrieb John Cowan <xxxxxx@ccil.org>:
>
> CL has a function (multiple-value-call consumer . producers), which calls then producers, collects all their values in order, and invokes the consumer on them.  In CL this is a primitive so that it can be done without consing anything.  I think something like it would fit into this SRFI as a syntax.

Thank you for the suggestion. This SRFI includes apply/mv, which does
the same thing (if I understand multiple-value-call correctly) but
with the restriction that all but the last producer must evaluate to a
single value. This restriction is in place so that a relatively
efficient implementation on existing Schemes is possible.

However, given CL's multiple-value-call, I would then add

(call/mv <consumer> <producer1> ...)

to the spec, which extends the domain of apply/mv in the CL sense but
may not be as efficient.