Jump to content

Elixir (programming language): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Josevalim (talk | contribs)
Docstring syntax comes from Python
Line 29: Line 29:
* Meta programming allowing direct manipulation of [[Abstract syntax tree|AST]]<ref name="elixirhome" />
* Meta programming allowing direct manipulation of [[Abstract syntax tree|AST]]<ref name="elixirhome" />
* [[Polymorphism (computer science)|Polymorphism]] via a mechanism called protocols. ''Enumerable'' is an example of a protocol, and is inspired by [[Clojure]] reducers <ref>{{ city web|url=https://pminten.github.io/blog/2013/09/05/elixirs-enumerable/|title=Elixir Enumerable| accessdate=2014-09-07}}</ref>
* [[Polymorphism (computer science)|Polymorphism]] via a mechanism called protocols. ''Enumerable'' is an example of a protocol, and is inspired by [[Clojure]] reducers <ref>{{ city web|url=https://pminten.github.io/blog/2013/09/05/elixirs-enumerable/|title=Elixir Enumerable| accessdate=2014-09-07}}</ref>
* Support for documentation via Ruby-like Doc-strings in the Markdown formatting language <ref name="elixirhome" />
* Support for documentation via Python-like docstrings in the Markdown formatting language <ref name="elixirhome" />
* [[Shared nothing architecture|Shared nothing concurrent programming]] via message passing ([[Actor model]])
* [[Shared nothing architecture|Shared nothing concurrent programming]] via message passing ([[Actor model]])
* Emphasis on [[recursion (computer science)|recursion]] and [[higher-order function]]s instead of [[side-effect (computer science)|side-effect]]-based [[loop (computing)|looping]]
* Emphasis on [[recursion (computer science)|recursion]] and [[higher-order function]]s instead of [[side-effect (computer science)|side-effect]]-based [[loop (computing)|looping]]

Revision as of 20:38, 22 September 2014

Elixir
Paradigmmulti-paradigm: functional, concurrent, process-oriented, homoiconic
First appeared2012
Stable release
1.0.0
Typing disciplinedynamic, strong
PlatformErlang
LicenseApache License
Filename extensions.ex, .exs
Websitewww.elixir-lang.org
Influenced by
Erlang, Ruby, Clojure

Elixir is a functional, concurrent, general-purpose programming language built atop the Erlang Virtual Machine (BEAM). Elixir builds on top of Erlang to provide distributed, fault-tolerant, soft real-time, non-stop applications but also extends it to support meta-programming with macros and polymorphism via protocols.[1]

History

José Valim is the creator of the Elixir programming language. His goals were to enable higher extensibility and productivity in the Erlang VM while keeping compatibility with Erlang's tools and ecosystem.[2]

Features

References

  1. ^ "Elixir". José Valim. Retrieved 2013-02-17.
  2. ^ "Elixir - A modern approach to programming for the Erlang VM". Retrieved 2013-02-17.
  3. ^ a b c d e f "Elixir". Retrieved 2014-09-07.
  4. ^ Template:City web