Warning

You're browsing the old v2.x documentation. This version is no longer maintained. Click here to go the v3.x documentation.

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
fun [2019/12/09 21:28] – [Calling functions] neilsfun [2020/08/07 08:51] – Add note about naming thraka
Line 12: Line 12:
 The ''FUN ... ENDFUN'' directives are used for defining a user function. Functions are similar to procedures with the exception that: The ''FUN ... ENDFUN'' directives are used for defining a user function. Functions are similar to procedures with the exception that:
  
-  * They **must** return a value +  * They **must** return a value. 
-  * They can be called from within an expression+  * They can be called from within an expression
 + 
 +The name of the function and the name of a parameter **can't** start with a command or directive name. For example, you can't define a function named ''repeatnumber'' as ''REPEAT'' is a command. Likewise, you can't name a parameter ''funcparameter1'' as ''FUNC'' is a directive.
  
 ===== Defining functions ===== ===== Defining functions =====
Line 47: Line 49:
 If you want a routine that does not return a value, use [[procedures|]] instead. If you want a routine that does not return a value, use [[procedures|]] instead.
  
-==== Functions with no parameters ====+==== Parameterless functions ====
  
 You can omit the parameter list, but bear in mind that you still have to write the empty parentheses: You can omit the parameter list, but bear in mind that you still have to write the empty parentheses:
Line 63: Line 65:
  
 Important note: you must pass exactly the same amount of parameters and the parameter types must match those in the function definition. Important note: you must pass exactly the same amount of parameters and the parameter types must match those in the function definition.
 +
 +===== Recursion =====
 +
 +While procedures do support direct recursion, functions don't.