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 -- recursion and useful code libraries.