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 -...