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

Reply via email to