Gretl Manual: Gnu Regression, Econometrics and Time-series Library | ||
---|---|---|
Prev | Chapter 10. User-defined functions | Next |
The following script illustrates the difference between global and local variables. Note that functions can be defined anywhere, so long as it is before they are called.
set echo off genr testvar = 1 printf "in main: testvar = %d\n", testvar function foo # create a local variable genr my testvar = 2 printf "in foo: testvar = %d\n", testvar bar printf "back in foo: testvar = %d\n", testvar # generate a global variable genr glob = 15 end function function bar genr my testvar = 3 printf "in bar: testvar = %d\n", testvar end function # call foo, which calls bar foo printf "back in main: testvar = %d, glob = %d\n", \ testvar, glob # list the global variables ls
The output from the above is:
gretl version 1.3.0 ... ? nulldata 5 periodicity: 1, maxobs: 5, observations range: 1-5 ? set echo off Generated scalar testvar (ID 2) = 1 in main: testvar = 1 Generated scalar testvar (ID 3) = 2 in foo: testvar = 2 Generated scalar testvar (ID 4) = 3 in bar: testvar = 3 back in foo: testvar = 2 Generated scalar glob (ID 4) = 15 back in main: testvar = 1, glob = 15 Listing 4 variables: 0) const 1) index 2) testvar 3) glob