===== Function =====
==== Format ====
**function** functionname ( //variable list// )\\
//statements//\\
**end function**
**function** functionname$ ( //variable list// )\\
//statements//\\
**end function**
==== Description ====
Create a function that will receive zero or more values, process those values and return either a numeric or string value. Return values are set by assigning the name of the function and executing a [[Return|Return]] statement or allowing the //End Function// statement to be executed. All variables used within the function will be local to the function and will not change the values in the calling code.
In many structured languages the return value of a function is set using the [[return|Return]] statement. In BASIC-256 the returned value of a function is set by assigning the function name the value and either executing the [[Return|Return]] statement or reaching the end of the function. A numeric function has the default return value of zero (0) and a string function has the default value of a zero length string ("").
Subroutine variables may a list of zero or more, comma separated, numeric or string variables. Arrays and variables may be passed by reference using the [[Ref|Ref]] definition.
Functions should be defined at the bottom of your program, and can not be defined within another function, [[Subroutine|Subroutine]] or control block ([[if|If/Then]], [[do|Do/Until]], ...)
==== Example ====
print double$("Hello")
print triple(3)
end
function double$(a$)
double$ = a$ + a$
end function
function triple(b)
triple = b * 3
return
triple = 9999 # code never gets executed
end function
will display\\
HelloHello
9
==== See Also ====
{{page>en:start#Program Control&noheader}}
==== New To Version ====
0.9.9.1