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.