variable number of arguments



Hi,

I rewrote the Mathematica translator in lisp and used
Richard Fateman's parser. The whole thing works pretty well
and is very fast. But, there are a number of more or less
difficult details, even with relatively common constructions.

Here is one. I wonder if someone has an idea.

Mma implements a variable number of arguments as part of its
pattern system,  like this.
  
  f[x__] := g[x];

If I do f[1,2,3] , I get in, effect g[1,2,3].

In macsyma, I can do this
  f([x]) := apply(g,x)
 
to get the same result. Translating this for slightly
more complicated code seems difficult. I wonder if there is
a way to do this (maybe with macros ?) without using
'apply'. I am looking for something like 'splice'.

Thanks,
John