defining a function that takes an array as an input



Hi.  I'm trying to develop a macro (or a function) that processes arrays.
In the language of SymbolicC++, it looks like

list<Symbolic> function_name(const list<Symbolic> &x, list<Symbolic> g_array
= list<Symbolic>()) {

    //the function does calculations

    return g_array;
}

I'm sure that I can do a similar thing with Maxima.  Could anyone give my an
example?

soichi