# Defining a function with a variable number of arguments: args

### 12.4.1 Defining a function with a variable number of arguments: args

The args command returns the list of arguments of a function.

- args takes no arguments.
- args (or args(NULL)) returns a list of the arguments of the current function, starting with the name of the function at index 0.

Note that args() will not work, the command must be called as args or args(NULL). You can also use (args)[0] to get the name of the function and (args)[1] to get the first argument, etc., but the parentheses about args is mandatory.

#### Examples.

- Input:

  testargs():= {local y; y:= args; return y[1];}
  testargs(12,5)

  Output:

  12

- Enter the function:

  total():={
  local s,a;}
  a:=args;
  s:=0;
  for (k:=1;k<size(a);k++){
  s:=s+a[k];
  }
  return s;
  }

  then:
  total(1,2,3,4)
  Output:

  10