freeCodeCamp/guide/russian/erlang/index.md

4.5 KiB
Raw Blame History

title localeTitle
Erlang Erlang

Erlang

Erlang - это функциональный язык программирования, разработанный Ericsson для использования в телекоммуникационных приложениях. Поскольку они чувствовали, что для телекоммуникационной системы неприемлемо иметь какое-либо существенное время простоя, Эрланг был построен, среди прочего:

  • распределенной и отказоустойчивой (часть неисправного программного обеспечения или аппаратного обеспечения не должна приводить систему к работе)
  • (он может генерировать множество процессов, каждый из которых выполняет небольшую и четко определенную часть работы и изолируется друг от друга, но может общаться через обмен сообщениями)
  • с возможностью горячей замены (код можно поменять местами в системе во время работы, что приведет к высокой доступности и минимальному простому простоя системы)

Синтаксис

Эрланг сильно использует рекурсию . Поскольку данные в Erlang неизменяемы, использование while и for циклов (где переменная должно продолжать изменять свое значение) недопустимо.

Ниже приведен пример рекурсии, показывающий, как функция повторно накладывает первую букву с начала имени и печатает ее, только останавливаясь при обнаружении последней буквы.

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

Вывод:

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

Также большое внимание уделяется сопоставлению шаблонов , что часто устраняет необходимость в структуре if или case . В следующем примере есть два соответствия для конкретных имен, за которыми следует catch-all для любых других имен.

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

Вывод:

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

Попробуйте

Существуют веб-сайты, на которых вы можете попробовать запустить команды Erlang без необходимости устанавливать что-либо локально, например:

Если вы хотите установить его на свою (или виртуальную) машину, вы можете найти установочные файлы на Erlang.org или в Erlang Solutions .

Дополнительная информация: