Эликсир (язык программирования) - Elixir (programming language)

Эликсир
язык программирования эликсир
Парадигма мультипарадигма : функциональная , параллельная , распределенная , ориентированная на процессы
Впервые появился 2011 ; 10 лет назад ( 2011 )
Стабильный выпуск
1.12  Отредактируйте это в Викиданных / 19 мая 2021 г . ; 2 месяца назад ( 19 мая 2021 г. )
Печатная дисциплина динамичный , сильный , утка
Платформа Erlang
Лицензия Лицензия Apache 2.0
Расширения имени файла .ex, .exs
Интернет сайт elixir-lang .org
Под влиянием
Clojure , Erlang , Ruby
Под влиянием
LFE

Эликсир является функциональным , одновременно , универсальным языком программирования , который работает на ЛУЧЕВОЙ виртуальной машине , используемая для реализации Эрланга языка программирования. Эликсир строит на вершине Erlang и разделяют те же абстракции для построения распределенных , отказоустойчивые приложения. Elixir также предоставляет производительные инструменты и расширяемый дизайн. Последнее поддерживается метапрограммированием во время компиляции с макросами и полиморфизмом через протоколы.

Elixir используется такими компаниями, как PagerDuty , Discord , Brex , E-MetroTel, Pinterest , Moz, Bleacher Report , The Outline , Inverse , Divvy , FarmBot, а также для создания встроенных систем . Сообщество ежегодно организует мероприятия в США, Европе и Японии, а также небольшие местные мероприятия и конференции.

История

Хосе Валим - создатель языка программирования Elixir, научно-исследовательского проекта, созданного в Plataformatec. Его цели состояли в том, чтобы обеспечить более высокую расширяемость и производительность виртуальной машины Erlang при сохранении совместимости с экосистемой Erlang.

Хосе Валим стремился создать язык программирования для крупномасштабных сайтов и приложений. Будучи разработчиком Ruby, он использовал функции Ruby, Erlang и Clojure для разработки языка с высокой степенью параллелизма и малой задержкой. Эликсир был разработан для обработки больших объемов данных. Его скорость и возможности распространяют Elixir в телекоммуникациях, электронной коммерции и финансах.

12 июля 2018 года Honeypot выпустила мини-документальный фильм об Эликсире.

Управление версиями

Elixir в основном следует семантическому управлению версиями и имеет только одну основную версию без каких-либо планов на секунду. Каждая из дополнительных версий поддерживает определенный диапазон версий Erlang / OTP .

Функции

Примеры

Следующие примеры можно запустить в iexоболочке или сохранить в файле и запустить из командной строки, набрав . elixir <filename>

Классический пример Hello world :

iex> IO.puts("Hello World!")
Hello World!

Понимания

iex> for n <- [1,2,3,4,5], rem(n, 2) == 1, do: n*n
[1, 9, 25]

Сопоставление с образцом (деструктуризация)

iex> [1, a] = [1, 2]
iex> a
2

iex> {:ok, [hello: a]} = {:ok, [hello: "world"]}
iex> a
"world"

Сопоставление с шаблоном (несколько предложений)

iex> case File.read("path/to/file") do
iex>   {:ok, contents} -> IO.puts("found file: #{contents}")
iex>   {:error, reason} -> IO.puts("missing file: #{reason}")
iex> end

Оператор трубы

iex> "1" |> String.to_integer() |> Kernel.*(2)
2

Модули

defmodule Fun do
  def fib(0), do: 0
  def fib(1), do: 1
  def fib(n), do: fib(n-2) + fib(n-1)  
end

Последовательное порождение тысячи процессов

for num <- 1..1000, do: spawn fn -> IO.puts("#{num * 2}") end

Асинхронное выполнение задачи

task = Task.async fn -> perform_complex_action() end
other_time_consuming_action()
Task.await task

Примечательные проекты Elixir

  • Mix - это инструмент автоматизации сборки, который предоставляет задачи для создания, компиляции и тестирования проектов Elixir, управления его зависимостями и многого другого.
  • Phoenix - это среда веб-разработки, написанная на Elixir, которая реализует шаблон контроллера представления модели ( MVC ) на стороне сервера .

Смотрите также

использованная литература

внешние ссылки