Elixir (programming language): Difference between revisions

Content deleted Content added
747pilot (talk | contribs)
m Reverted edits by 47.189.152.205 (talk) (HG) (3.4.12)
m Features: remove duplicate link
Line 48:
* Railway oriented programming via the <code>with</code> construct<ref>{{Cite web |last=Wlaschin |first=Scott |date=May 2013 |title=Railway Oriented Programming |url=https://fsharpforfunandprofit.com/rop/ |url-status=live |archive-url=https://web.archive.org/web/20210130221804/http://fsharpforfunandprofit.com/rop/ |archive-date=30 January 2021 |access-date=28 February 2021 |website=F# for Fun and Profit}}</ref>
* Hygienic [[metaprogramming]] by direct access to the [[abstract syntax tree]] (AST).<ref name="elixirhome" /> Libraries often implement small [[Domain-specific language|___domain-specific languages]], such as for databases or testing.
* Code execution at compile time. The Elixir compiler also runs on the [[BEAM (Erlang virtual machine)|BEAM]], so modules that are being compiled can immediately run code which has already been compiled.
* [[Polymorphism (computer science)|Polymorphism]] via a mechanism called protocols. [[Dynamic dispatch]], as in [[Clojure]], however, without [[multiple dispatch]] because Elixir protocols dispatch on a single type.
* Support for documentation via Python-like docstrings in the [[Markdown]] formatting language<ref name="elixirhome" />