Gretl Manual: Gnu Regression, Econometrics and Time-series Library
Prev | Chapter 11. User-defined functions | Next

# Calling a function

A user function is called or invoked by typing its name followed by zero or more arguments. If there are two or more arguments these should be separated by commas. The following trivial example illustrates a function call that correctly matches the function definition.

          # function definition
          function ols_ess (series y, list xvars)
            ols y 0 xvars --quiet
            scalar myess = $ess
            printf "ESS = %g\n", myess
            return scalar myess
          end function
          # main script
          open data4-1
          list xlist = 2 3 4
          # function call (the return value is ignored here)
          ols_ess price, xlist

The function call gives two arguments: the first is a data series specified by name and the second is a named list of regressors. Note that while the function offers the variable `myess` as a return value, it is ignored by the caller in this instance.

(As a side note here, if you want a function to calculate some value having to do with a regression, but are not interested in the full results of the regression, you may wish to use the `--quiet` flag with the estimation command as shown above.)

A second example shows how to write a function call that assigns return values to variables in the caller:

          # function definition
          function ess_uhat (series y, list xvars)
            ols y 0 xvars --quiet
            scalar myess = $ess
            printf "ESS = %g\n", myess
            series uh = $uhat
            return scalar myess, series uh
          end function
          # main script
          open data4-1
          list xlist = 2 3 4
          # function call
          (SSR, resids) = ess_uhat price, xlist

Prev | Home | Next
Defining a function | Up | Scope of variables