Skip to main content

Posts

Showing posts from February, 2003
Despite the fairly recent addition of real functions and subs to the language, Liberty Basic still pushes you to use the old gosub/return construct. This pressure is not obvious until you're actually writing programs. Let's see how the pressure builds: Parameters passed to a function or sub are "by value". This means that a copy is made and no changes can be made to original variable in the function call. Global variables are not visible in a function or sub with the exception of arrays, structs, handles and system variables. Sometimes you need to return more than one value. Using single-dimensioned, 1-element arrays as global variables is ugly. The cleanest solution is to make the code global as a chunk of gosub/return code. This might be a partial answer to the question I had about why so many Liberty Basic programmers keep on using this construct instead of switching entirely to functions and subs. There are a few things that require functions -