Lua/Functions

Lua modules based on the Scribunto/Lua extension are stored in resource pages using the Module: namespace. Each module uses a table to hold functions and variables, and that containing table is returned at the end of the module code. Functions are code structures used to encapsulate a series of statements that may be called as needed. This lesson will show you how to use functions in your scripts.

Prerequisites
This lesson assumes you have already completed the Loops lesson.

Create a Lua Script with Functions
To create a Lua script with functions: ""
 * 1) Navigate to Module:Sandbox.
 * 2) Clear all existing code.
 * It's a sandbox. Everyone is free to play in the sandbox.  But if you find another user is actively editing the sandbox at the same time, you may also use Module:Sandbox/Username, where Username is your Wikiversity username.
 * 1) Add the following code and save the page:

Test Your Lua Script
To test your Lua script:
 * 1) Navigate to either the Module_talk:Sandbox page, the Sandbox page, or your own user or sandbox page.
 * 2) Add the following code and save the page:

The result should be:
 * Fahrenheit to Celsius
 * 0 °F is -17.8 °C
 * 10 °F is -12.2 °C
 * 20 °F is -6.7 °C
 * 30 °F is -1.1 °C
 * 40 °F is 4.4 °C
 * 50 °F is 10.0 °C
 * 60 °F is 15.6 °C
 * 70 °F is 21.1 °C
 * 80 °F is 26.7 °C
 * 90 °F is 32.2 °C
 * 100 °F is 37.8 °C


 * Celsius to Fahrenheit
 * 0 °C is 32.0 °F
 * 10 °C is 50.0 °F
 * 20 °C is 68.0 °F
 * 30 °C is 86.0 °F
 * 40 °C is 104.0 °F
 * 50 °C is 122.0 °F
 * 60 °C is 140.0 °F
 * 70 °C is 158.0 °F
 * 80 °C is 176.0 °F
 * 90 °C is 194.0 °F
 * 100 °C is 212.0 °F

Understand Your Lua Script
To understand your Lua script  function: To understand your Lua script  function: To understand your Lua script  function: It should be noted that this script makes use of three different function types:
 * 1)   declares a local function named   that accepts a single parameter , which is the Fahrenheit temperature to be converted.
 * Declaring the function as  prevents it from being called from outside the module.
 * 1)   converts the Fahrenheit temperature into Celsius and returns the result.
 * 2)   ends the function.
 * 1)   declares a local function named   that accepts a single parameter , which is the Celsius temperature to be converted.
 * Declaring the function as  prevents it from being called from outside the module.
 * 1)   converts the Celsius temperature into Fahrenheit and returns the result.
 * 2)   ends the function.
 * 1)   declares a function named.
 * This function is not declared, so it can be called from outside the module.
 * 1)   and the following code defines the variables   and  .  Both are.
 * 2)   assigns a string literal value to the variable.
 * 3)   creates a loop code block that will vary the value of the variable   from   to   by.
 * 4)   calls the   function and passes in the current value of   as the temperature to be converted.
 * 5)   calls the   library   function to format the returned Celsius temperature.
 * 6)   indicates that the resulting format (%) should be a single decimal place (.1) floating point (f) value.
 * 7)   calls the   function and passes in the current value of   as the temperature to be converted.
 * 8)   calls the   library   function to format the returned Fahrenheit temperature.
 * 9)   indicates that the resulting format (%) should be a single decimal place (.1) floating point (f) value.
 * 10)   returns the current value of   as the result of the function.
 * locally accessible functions
 * globally accessible functions
 * library functions.

Conclusion
Congratulations! You've now created, tested, and understood a Lua script with functions. Continue on to the Tables lesson.