Az Erlang áttekintése példákkal

Az Erlang egy funkcionális programozási nyelv, amelyet az Ericsson fejlesztett telekommunikációs alkalmazásokhoz. Mivel úgy ítélték meg, hogy elfogadhatatlan, hogy egy távközlési rendszer jelentős leállással rendelkezzen, az Erlangot többek között azért építették:

  • elosztott és hibatűrő (egy meghibásodott szoftver vagy hardver darabja nem hozhatja le a rendszert)
  • egyidejű (sok folyamatot képes előidézni, amelyek mindegyike egy kicsi és jól körülhatárolható munkát hajt végre, és egymástól el vannak szigetelve, de képesek kommunikálni üzenetküldés útján)
  • gyorsan cserélhető (a kód futás közben felcserélhető a rendszerre, ami magas rendelkezésre állást és minimális rendszerleállást eredményez)

Szintaxis

Erlang nagy mértékben alkalmazza a rekurziót . Mivel az adatok az Erlangban megváltoztathatatlanok, a whileés a forciklusok használata (ahol a változónak folyamatosan változtatnia kell az értékét) nem megengedett.

Íme egy példa a rekurzióra, amely megmutatja, hogy egy függvény ismételten lecsupaszítja az első betűt a név elejéről és kinyomtatja, csak akkor áll le, amikor az utolsó betűvel találkoztak.

-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).

Kimenet:

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

Nagy hangsúlyt fektetnek a minták illesztésére is , ami gyakran kiküszöböli a ifstruktúra vagy caseutasítás szükségességét. Az alábbi példában két találat van egy adott névre, amelyet minden más névre egy catch-all követ.

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

Kimenet:

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

Erlang Term Storage

Az Erlang Term Storage, általában rövidítve ETS néven, az OTP-be épített memóriában található adatbázis. Ez elérhető az Elixiren belül, és hatékony alternatíva az olyan megoldásokhoz, mint a Redis, amikor az alkalmazás egyetlen csomóponton fut.

Gyors indítás

ETS-tábla létrehozásához először inicializálnia kell egy táblázatot tableName = :ets.new(:table_otp_name, []), miután inicializálta a táblázatot, megteheti: adatok beszúrása, keresési értékek, adatok törlése és egyebek.

ETS bemutató az IEX-ben

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

Kitartás

Az ETS táblázatok nem perzisztensek és megsemmisülnek, amint a tulajdonosa folyamat befejeződik. Ha állandóan szeretné tárolni az adatokat, ajánlott a hagyományos adatbázis és / vagy fájl alapú tárolás.

Felhasználási esetek

Az ETS-táblákat általában használják az adatok gyorsítótárazásához az alkalmazásban, például az adatbázisból lekért számlaadatok tárolhatók egy ETS-táblában, hogy csökkentse az adatbázisba irányuló lekérdezések számát. Egy másik felhasználási eset a webes alkalmazások funkcióinak korlátozására vonatkozik - az ETS gyors olvasási és írási sebessége nagyszerűvé teszi ezt. Az ETS Tables hatékony eszköz egyidejű webes alkalmazások fejlesztéséhez a lehető legalacsonyabb hardverköltség mellett.

Próbáld ki

Vannak olyan webhelyek, ahol megpróbálhatja futtatni az Erlang parancsokat anélkül, hogy bármit is telepítenie kellene helyben, például ezek:

  • Megpróbál! (gyakorlati bemutató)
  • TutorialsPoint CodingGround

Ha telepíteni szeretné a számítógépére (vagy egy virtuális gépére), a telepítési fájlokat az Erlang.org oldalon vagy az Erlang Solutions oldalon találja meg.

Több információ:

  • Erlangról
  • Erlang (programozási nyelv)