Go to the first, previous, next, last section, table of contents.

### parameters and arguments

    def sum(N) {
        for ( I = 1, S = 0; I <= N; I++ )
            S += I;
        return S;
    }

This is an example definition of a function that sums up integers from 1 to `N`. The `N` in `sum(N)` is called the (formal) parameter of `sum(N)`. The example shows a function of the single argument. In general, any number of parameters can be specified by separating by commas (``,'`). A (formal) parameter accepts a value given as an argument (or an actual parameter) at a function call of the function. Since the value of the argument is given to the formal parameter, any modification to the parameter does not usually affect the argument (or actual parameter). However, there are a few exceptions: vector arguments and matrix arguments. Let `A` be a program variable and assigned to a vector value `[ a, b ]`. If A is given as an actual parameter to a formal parameter, say `V`, of a function, then an assignment in the function to the vector element designator `V[1]`, say `V[1]=c;`, causes modification of the actual parameter `A` resulting `A` to have an altered value `[ a c ]`. Thus, if a vector is given to a formal parameter of a function, then its element (and subsequently the vector itself) in the calling side is modified through modification of the formal parameter by a vector element designator in the called function. The same applies to a matrix argument. Note that, even in such case where a vector (or a matrix) is given to a formal parameter, the assignment to the whole parameter itself has only a local effect within the function.

    def clear_vector(M) {
        /* M is expected to be a vector */
        L = size(M)[0];
        for ( I = 0; I < L; I++ )
            M[I] = 0;
    }

This function will clear off the vector given as its argument to the formal parameter `M` and return a 0 vector. Passing a vector as an argument to a function enables returning multiple results by packing each result in a vector element. Another alternative to return multiple results is to use a list. Which to use depends on cases.

Go to the first, previous, next, last section, table of contents.