Marco Maggi <[email protected]> writes:
> Niels Möller wrote:
>> However, for a natural implementation which evaluates
>> arguments and conses the results up to a list, this seems
>> to require an extra copy of the argument list, after all
>> values are evaluated and before the list is bound to the
>> rest parameter.
>
> Yes, but it depends on what is "natural" for you. In
> Vicare, when calling a Scheme function, all the arguments
> are pushed on the Scheme stack segment (similar to calling a
> C function) and then the function is called; the callee
> takes the leftover arguments and puts them into a newly
> allocated list.
Indeed, and Guile 2 also does this in compiled code.
Mark