Re: coop - a concurrent ml-like wanna be (pre-SRFI) Wolfgang Corcoran-Mathe 06 May 2021 21:54 UTC

On 2021-05-06 21:37 +0200, Marc Nieper-Wißkirchen wrote:
> Unless you can be sure that procedure can be inlined by the compiler and
> the optimizer can understand the code the match macro generates, a
> procedure of the form (lambda args ...) will be rather inefficient.
>
> Don't cons arguments (in the form of a rest argument) just to be able to
> use match to destructure them.

I don't want to belabor the point, but I think that it depends; we
can't easily write "fast" under case-lambda and "slow" under
match-lambda or the like without talking about specific
implementations.  The portable case-lambda implementation from R7RS
also expands to (lambda args ...); given the possibility that someone
will run code on a Scheme using this, I wouldn't be particularly
worried about trying to optimize argument-matching in portable code.

--
Wolfgang Corcoran-Mathe  <xxxxxx@sigwinch.xyz>

"Prolonged contact with the computer turns mathematicians into
clerks and vice-versa." --Alan J. Perlis