# Introduction au Lua/Fonctions

…Contexte de la leçon… Les fonctions sont des structures de code qui servent à encapsuler une série d'instructions de manière à pouvoir les appeler aussi souvent que nécessaire. Cette leçon montre comment utiliser des fonctions dans un script.

## Prérequis

Cette leçon suppose que vous ayez assimilé la leçon Boucles.

## Créer un script Lua avec des fonctions

* Accéder au Module:Sandbox.
* Supprimer le code existant.
* Ajouter le code suivant et enregistrer la page:

## Tester votre nouveau script

* Rendez-vous sur "votre page de test".
* Ajouter le code suivant et enregistrer la page:
Le résultat doit correspondre à ceci:

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

## Comprendre le nouveau script

* local function toCelsius(f) déclare une fonction locale nommée toCelsius qui accepte un seul paramètre f, la température en Farenheit à convertir.
    Le fait de déclare la fonction comme local garantit qu'elle ne puisse être appelée en dehors du module.
* return (f - 32) * 5 / 9 convertit la température Fahrenheit en Celsius et retourne le résultat.
* end termine la fonction.

### Comprendre la fonction toFahrenheit

* local function toFahrenheit(c) déclare une fonction locale nommée toFahrenheit qui accepte un seul paramètre c, la température en Celcius à convertir.
    Le fait de déclare la fonction comme local garantit qu'elle ne puisse être appelée en dehors du module.
* return c * 9 / 5 + 32 convertit la température Celsius en Fahrenheit et retourne le résultat.
* end termine la fonction.

### Comprendre la fonction functions

* function p.functions déclare une fonction nommé functions.
    Ici nous n'utilisons pas le code local, ce qui la rend accessible depuis l’extérieur du module.
* local et le code qui suit définit les variables temperature et result. Les deux sont nil.
* result = ';Fahrenheit to Celsius\n' assigne une chaine de caractère littérale comme valeur à la variable result.
* for temperature = 0, 100, 10 do créé un bloc de code pour la boucle qui va incrémenter la variable temperature de 0 à 100 par séquence de 10.
* toCelsius(temperature) appel la fonction toCelsius et lui passe la valeur courante de la variable temperature comme température à convertir.
* string.format appel la fonction format de la librairie string pour formater la valeur retournée en Celcius.
* '%.1f' indique le format (%) désiré, on affichera une seule décimale (.1) après la virgule flotante (f).
* toFahrenheit(temperature) appel la fonction toFahrenheit et lui passe la valeur courante de la variable temperature comme température à convertir.
* string.format appel la fonction format de la librairie string pour formater la température retournée en Fahrenheit.
* '%.1f' indique le format (%) désiré, on affichera une seule décimale (.1) après la virgule flotante (f).
* return result retourne la valeur courante de la variable result comme résultat de la fonction.
Notez que le script utilise trois types de fonctions différents.
* fonction à portée locale (toCelsius, toFahrenheit)
* fonction à portée globale (functions)
* fonction appartenant à une librairie (string.format).

## Conclusion

Félicitation! Vous êtes capable de créer, tester et comprendre un script Lua qui contient des fonctions. Continuez avec la leçon Tables.