Elixir (programming Language)
Elixir
elixir programming language
Paradigm multi-paradigm: functional, concurrent, distributed, process-oriented
First appeared 2011; 6 years ago (2011)
Stable release
1.5.2 / 29 September 2017; 23 days ago (2017-09-29)[1]
Typing discipline dynamic, strong
Platform Erlang
License Apache License 2.0[2]
Filename extensions .ex, .exs
Website elixir-lang.org
Influenced by
Erlang, Ruby, Clojure
Influenced
LFE

Elixir is a functional, concurrent, general-purpose programming language that runs on the Erlang virtual machine (BEAM). Elixir builds on top of Erlang and shares the same abstractions for building distributed, fault-tolerant applications. Elixir also provides a productive tooling and an extensible design. The latter is supported by compile-time metaprogramming with macros and polymorphism via protocols.[3]

Elixir is used by companies such as E-MetroTel, Pinterest[4] and Moz.[5] Elixir is also used for web development, by companies such as Bleacher Report, Discord, and Inverse,[6] and for building embedded-systems.[7][8] The community organizes yearly events in United States[9][10][11], Europe[12] and Japan[13] as well as minor local events and conferences.[14][15]

History

José Valim is the creator of the Elixir programming language, an R&D project of Plataformatec. His goals were to enable higher extensibility and productivity in the Erlang VM while keeping compatibility with Erlang's ecosystem.[16][17]

Features

Examples

The following examples can be run in an iex shell or saved in a file and run from the command line by typing elixir <filename>.

Classic Hello world example:

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

Comprehensions

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

Pattern Matching

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

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

Modules

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

Sequentially spawning a thousand processes

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

Asynchronously performing a task

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

References

  1. ^ "Releases - elixir-lang/elixir". Retrieved 2017 - via GitHub. 
  2. ^ "elixir/LICENSE at master · elixir-lang/elixir · GitHub". GitHub. 
  3. ^ "Elixir". José Valim. Retrieved . 
  4. ^ "Introducing new open-source tools for the Elixir community". Retrieved . 
  5. ^ "Unlocking New Features in Moz Pro with a Database-Free Architecture". Retrieved . 
  6. ^ "What big projects use Elixir?". Retrieved . 
  7. ^ "Elixir in production interview: Garth Hitchens". Retrieved . 
  8. ^ "Nerves - Craft and deploy bulletproof embedded software in Elixir". Retrieved . 
  9. ^ "ElixirConf 2014". Retrieved . 
  10. ^ "ElixirConf 2015". Retrieved . 
  11. ^ "ElixirConf". Retrieved . 
  12. ^ "ElixirConf". Retrieved . 
  13. ^ "ElixirConf.jp". Retrieved . 
  14. ^ "Elixir LDN". Retrieved . 
  15. ^ "EMPEX - Empire State Elixir Conference". Retrieved . 
  16. ^ Elixir - A modern approach to programming for the Erlang VM. Retrieved . 
  17. ^ José Valim - ElixirConf EU 2017 Keynote. Retrieved . 
  18. ^ a b c d e f "Elixir". Retrieved . 
  19. ^ Loder, Wolfgang (12 May 2015). Erlang and Elixir for Imperative Programmers. "Chapter 16: Code Structuring Concepts", section title "Actor Model": Leanpub. Retrieved 2015. 

External links


  This article uses material from the Wikipedia page available here. It is released under the Creative Commons Attribution-Share-Alike License 3.0.


Elixir_(programming_language)



 
Connect with defaultLogic
What We've Done
Led Digital Marketing Efforts of Top 500 e-Retailers.
Worked with Top Brands at Leading Agencies.
Successfully Managed Over $50 million in Digital Ad Spend.
Developed Strategies and Processes that Enabled Brands to Grow During an Economic Downturn.
Taught Advanced Internet Marketing Strategies at the graduate level.



Manage research, learning and skills at defaultLogic. Create an account using LinkedIn or facebook to manage and organize your IT knowledge. defaultLogic works like a shopping cart for information -- helping you to save, discuss and share.


  Contact Us