| Gretl Manual: Gnu Regression, Econometrics and Time-series Library | ||
|---|---|---|
| Prev | Chapter 11. User-defined functions | Next |
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, xlistThe 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