Re: First comments Adam Nelson 09 Jun 2020 16:08 UTC

On 6/9/20 12:05 PM, Marc Nieper-Wißkirchen wrote:
> Am Di., 9. Juni 2020 um 15:25 Uhr schrieb Adam Nelson <xxxxxx@nels.onl>:
>
>>> (6) These macros do not handle procedures returning multiple values;
>>> this may not be an issue with Clojure (I don't know), but it should be
>>> taken into consideration with Scheme. Especially for pipelining,
>>> multiple values can come in handy when more than one value has to be
>>> threaded through (or just at some intermediate stages).
>> I agree that this should be default functionality; if a procedure
>> returns two values, it should expand into two arguments at the front or
>> back of the next call in the pipeline. I am concerned about the
>> performance impact of this in the default case, though. Schemes without
>> sophisticated compilers will be slowed down by making each pipeline call
>> a `call-with-values` followed by an `apply` with list concatenation.
> When these macros are extended to multiple values, we need a way to
> specify more than one initial value. The current syntax only supports
> one initial value. I'm not yet sure what the best approach is, but
> this issue shouldn't be forgotten.
Using `(values ...)` as the initial argument seems like the best
approach to this.