Erlang - Modul

Modul adalah sekumpulan fungsi yang dikelompokkan kembali dalam satu file, dengan satu nama. Selain itu, semua fungsi di Erlang harus ditentukan dalam modul.

Sebagian besar fungsionalitas dasar seperti aritmatika, logika, dan operator Boolean sudah tersedia karena modul default dimuat saat program dijalankan. Setiap fungsi lain yang didefinisikan dalam modul yang akan Anda gunakan perlu dipanggil dengan formulirModule:Function (Argumen).

Mendefinisikan Modul

Dengan sebuah modul, Anda dapat mendeklarasikan dua jenis hal: fungsi dan atribut. Atribut adalah metadata yang mendeskripsikan modul itu sendiri seperti namanya, fungsi yang seharusnya dapat dilihat oleh dunia luar, pembuat kode, dan sebagainya. Jenis metadata ini berguna karena memberikan petunjuk kepada kompiler tentang bagaimana ia harus melakukan tugasnya, dan juga karena memungkinkan orang mengambil informasi yang berguna dari kode yang dikompilasi tanpa harus berkonsultasi dengan sumbernya.

Sintaks dari deklarasi fungsi adalah sebagai berikut -

Sintaksis

-module(modulename)

Dimana, modulenameadalah nama modul. Ini harus menjadi baris pertama dari kode dalam modul.

Program berikut menunjukkan contoh modul yang disebut helloworld.

Contoh

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

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

Output dari program diatas adalah -

Keluaran

Hello World

Atribut Modul

Atribut modul mendefinisikan properti tertentu dari sebuah modul. Atribut modul terdiri dari tag dan nilai.

Sintaks umum dari suatu atribut adalah -

Sintaksis

-Tag(Value)

Contoh bagaimana atribut dapat digunakan ditunjukkan dalam program berikut -

Contoh

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

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

Program di atas mendefinisikan 2 atribut khusus yang disebut penulis dan versi yang masing-masing berisi pembuat program dan nomor versi program.

Output dari program diatas adalah -

Keluaran

Hello World

Atribut yang dibuat sebelumnya

Erlang memiliki beberapa atribut pra-bangun yang dapat dilampirkan ke modul. Mari kita lihat.

Ekspor

Atribut ekspor akan mengambil daftar fungsi dan arity untuk diekspor untuk dikonsumsi oleh modul lain. Ini akan menentukan antarmuka modul. Kami telah melihat ini di semua contoh kami sebelumnya.

Sintaksis

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

Dimana,

  • FunctionName - Ini adalah nama fungsi dalam program.

  • FunctionArity - Ini adalah jumlah parameter yang terkait dengan fungsi.

Contoh

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

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

Output dari program di atas adalah -

Keluaran

Hello World

Impor

Atribut import digunakan untuk mengimpor fungsi dari modul lain untuk digunakan sebagai lokal.

Sintaksis

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

Dimana,

  • Modulename - Ini adalah nama modul yang perlu diimpor.

  • functionname/parameter - fungsi dalam modul yang perlu diimpor.

Contoh

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

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

Dalam kode di atas, kami menggunakan kata kunci impor untuk mengimpor perpustakaan 'io' dan khususnya fungsi fwrite. Jadi, sekarang setiap kali kita menjalankan fungsi fwrite, kita tidak perlu menyebutkan nama modul io di mana-mana.

Output dari program di atas adalah -

Keluaran

Hello, world!