Erlang - Modules

Les modules sont un ensemble de fonctions regroupées dans un seul fichier, sous un seul nom. De plus, toutes les fonctions d'Erlang doivent être définies dans des modules.

La plupart des fonctionnalités de base telles que les opérateurs arithmétiques, logiques et booléens sont déjà disponibles car les modules par défaut sont chargés lors de l'exécution d'un programme. Toutes les autres fonctions définies dans un module que vous utiliserez doivent être appelées avec le formulaireModule:Function (Arguments).

Définition d'un module

Avec un module, vous pouvez déclarer deux types de choses: des fonctions et des attributs. Les attributs sont des métadonnées décrivant le module lui-même comme son nom, les fonctions qui devraient être visibles du monde extérieur, l'auteur du code, etc. Ce type de métadonnées est utile car il donne des indications au compilateur sur la façon dont il doit faire son travail, et aussi parce qu'il permet aux gens de récupérer des informations utiles à partir du code compilé sans avoir à consulter la source.

La syntaxe d'une déclaration de fonction est la suivante -

Syntaxe

-module(modulename)

Où, modulenameest le nom du module. Cela doit être la première ligne du code dans le module.

Le programme suivant montre un exemple de module appelé helloworld.

Exemple

-module(helloworld). 
-export([start/0]). 

start() -> 
   io:fwrite("Hello World").

La sortie du programme ci-dessus est -

Production

Hello World

Attributs du module

Un attribut de module définit une certaine propriété d'un module. Un attribut de module se compose d'une balise et d'une valeur.

La syntaxe générale d'un attribut est -

Syntaxe

-Tag(Value)

Un exemple de la façon dont l'attribut peut être utilisé est montré dans le programme suivant -

Exemple

-module(helloworld). 
-author("TutorialPoint"). 
-version("1.0"). 
-export([start/0]). 

start() -> 
   io:fwrite("Hello World").

Le programme ci-dessus définit 2 attributs personnalisés appelés auteur et version qui contiennent respectivement l'auteur du programme et le numéro de version du programme.

La sortie du programme ci-dessus est -

Production

Hello World

Attributs pré-construits

Erlang a quelques attributs pré-construits qui peuvent être attachés aux modules. Jetons un coup d'œil à eux.

Exportation

L'attribut exports prendra une liste de fonctions et d'arité à exporter pour la consommation par d'autres modules. Il définira l'interface du module. Nous l'avons déjà vu dans tous nos exemples précédents.

Syntaxe

export([FunctionName1/FunctionArity1,.,FunctionNameN/FunctionArityN])

Où,

  • FunctionName - C'est le nom de la fonction dans le programme.

  • FunctionArity - C'est le nombre de paramètres associés à la fonction.

Exemple

-module(helloworld). 
-author("TutorialPoint"). 
-version("1.0"). 
-export([start/0]). 

start() -> 
   io:fwrite("Hello World").

La sortie du programme ci-dessus sera -

Production

Hello World

Importer

L'attribut import est utilisé pour importer des fonctions d'un autre module pour les utiliser en local.

Syntaxe

-import (modulename , [functionname/parameter]).

Où,

  • Modulename - C'est le nom du module qui doit être importé.

  • functionname/parameter - la fonction dans le module qui doit être importée.

Exemple

-module(helloworld). 
-import(io,[fwrite/1]). 
-export([start/0]). 

start() -> 
   fwrite("Hello, world!\n").

Dans le code ci-dessus, nous utilisons le mot-clé import pour importer la bibliothèque 'io' et plus particulièrement la fonction fwrite. Ainsi, chaque fois que nous invoquons la fonction fwrite, nous n'avons pas à mentionner le nom du module io partout.

La sortie du programme ci-dessus sera -

Production

Hello, world!