Pregled Erlanga s primjerima

Erlang je funkcionalni programski jezik koji je razvio Ericsson za upotrebu u telekomunikacijskim aplikacijama. Budući da su smatrali da je neprihvatljivo da telekomunikacijski sustav ima bilo kakvih značajnih zastoja, Erlang je stvoren da bude (između ostalog):

  • distribuiran i otporan na kvarove (dio softvera ili hardvera koji ne radi ne bi smio srušiti sustav)
  • istodobno (može iznjedriti mnoge procese, svaki izvršavajući mali i dobro definirani dio posla, izoliran jedan od drugog, ali sposoban za komunikaciju putem poruka)
  • zamjenjivo putem vruće (kod se može zamijeniti u sustav dok je pokrenut, što dovodi do velike dostupnosti i minimalnog zastoja sustava)

Sintaksa

Erlang često koristi rekurziju . Budući da su podaci nepromjenjivi u Erlangu, uporaba whilei forpetlje (gdje varijabla mora stalno mijenjati vrijednost) nije dopuštena.

Evo primjera rekurzije, koji pokazuje kako funkcija opetovano uklanja prvo slovo s prednje strane imena i ispisuje ga, zaustavljajući se tek kad se nađe posljednje slovo.

-module(name). -export([print_name/1]). print_name([RemainingLetter | []]) -> io:format("~c~n", [RemainingLetter]); print_name([FirstLetter | RestOfName]) -> io:format("~c~n", [FirstLetter]), print_name(RestOfName).

Izlaz:

> name:print_name("Mike"). M i k e ok

Također je velik naglasak na podudaranju uzoraka , što često uklanja potrebu za ifstrukturom ili caseizjavom. U slijedećem primjeru postoje dva podudaranja za određena imena, nakon kojih slijedi hvatanje svih ostalih imena.

-module(greeting). -export([say_hello/1]). say_hello("Mary") -> "Welcome back Mary!"; say_hello("Tom") -> "Howdy Tom."; say_hello(Name) -> "Hello " ++ Name ++ ".".

Izlaz:

> greeting:say_hello("Mary"). "Welcome back Mary!" > greeting:say_hello("Tom"). "Howdy Tom." > greeting:say_hello("Beth"). "Hello Beth."

Pojam za pohranu Erlang

Terla Storage Erlang, obično skraćeno ETS, je baza podataka u memoriji ugrađena u OTP. Dostupan je unutar Elixira i snažna je alternativa rješenjima poput Redisa kada se vaša aplikacija izvodi na jednom čvoru.

Brzi početak

Da biste stvorili ETS tablicu, prvo morate inicijalizirati tablicu tableName = :ets.new(:table_otp_name, []), nakon što ste inicijalizirali tablicu, možete: umetati podatke, vrijednosti pretraživanja, brisati podatke i još mnogo toga.

ETS demonstracija u IEX-u

iex(1)> myETSTable = :ets.new(:my_ets_table, []) #Reference iex(2)> :ets.insert(myETSTable, {"favoriteWebSite", "freeCodeCamp"}) true iex(3)> :ets.insert(myETSTable, {"favoriteProgrammingLanguage", "Elixir"}) true iex(4)> :ets.i(myETSTable)  {<>,<>}  {<>,<>} EOT (q)uit (p)Digits (k)ill /Regexp -->

Upornost

ETS tablice nisu postojane i uništavaju se kad se završi postupak čiji je vlasnik. Ako želite trajno pohranjivati ​​podatke, preporučuje se tradicionalna pohrana podataka i / ili datoteka.

Slučajevi upotrebe

ETS tablice obično se koriste za predmemoriranje podataka u aplikaciji, na primjer podaci računa preuzeti iz baze podataka mogu se pohraniti u ETS tablicu kako bi se smanjila količina upita prema bazi podataka. Drugi je slučaj upotrebe ograničavanja upotrebe značajki u web aplikaciji - ETS-ova brza brzina čitanja i pisanja čini ga izvrsnim za ovo. ETS tablice moćan su alat za razvoj istodobnih web aplikacija uz najniže moguće hardverske troškove.

Isprobaj

Postoje web stranice na kojima možete pokušati pokrenuti naredbe Erlang, a da ništa ne morate instalirati lokalno, poput ovih:

  • Pokušati! (praktični vodič)
  • TutorialiPoint CodingGround

Ako ga želite instalirati na svoj (ili virtualni) stroj, instalacijske datoteke možete pronaći na Erlang.org ili na Erlang Solutions.

Više informacija:

  • O Erlangu
  • Erlang (programski jezik)