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.