User Tools

Site Tools


el:function

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

el:function [2016/01/01 22:39]
el:function [2020/02/28 10:46] (current)
Line 1: Line 1:
 +===== 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 ====
 +
 +<code>
 +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
 +</code>
 +will display\\
 +<code>
 +HelloHello
 +9
 +</code>
 +==== See Also ====
 +{{page>en:start#Program Control&noheader}}
 +
 +==== New To Version ==== 
 +0.9.9.1