lundi 2 mai 2016

Elixir (langage de programmation)


Elixir (langage de programmation)
Un article de Wikipédia, l'encyclopédie libre
Élixir
langage de programmation élixir
Paradigme multi-paradigme : fonctionnelle , concurrente , distribuée , orientée processus
Tout d'abord apparu 2012; Il y a 4 ans
Version stable 1.2.4 / 1 Avril 2016. Il y a 30 jours [1]
Typing discipline dynamique , forte
Plate-forme Erlang
Licence Licence Apache 2.0 [2]
extensions de nom de fichier .EX, .exs
Site Internet elixir-lang .org
Influencé par
Erlang , LFE [ citation nécessaire ], Ruby , Clojure
Influencé
LFE
Elixir est une fonctionnelle , concurrente , à usage général langage de programmation qui fonctionne sur la Erlang machine virtuelle (BEAM). Elixir construit au - dessus de Erlang pour fournir distribué, tolérant aux pannes, en temps réel souple, les applications non-stop , mais il étend aussi à soutenir métaprogrammation avec macros et polymorphisme via des protocoles. [3]

Contenu [hide]
1 Histoire
2 Caractéristiques
3 Exemples
4 Références
5 Liens externes
Histoire [ modifier ]
José Valim est le créateur du langage de programmation Elixir, un projet de R & D de Plataformatec . Ses objectifs étaient de permettre l' extensibilité et une productivité plus élevée dans le Erlang VM tout en conservant la compatibilité avec les outils et l' écosystème de Erlang. [4]

Caractéristiques [ modifier ]
Un langage qui compile à bytecode pour le Erlang Virtual Machine (BEAM) [5]
Tout est une expression [5]
Fonctions Erlang peuvent être appelées à partir Elixir sans temps d'exécution d' impact, en raison de la compilation pour Erlang bytecode, et vice - versa
Programmation Meta permettant la manipulation directe des AST [5]
Polymorphisme via un mécanisme appelé protocoles. Comme dans Clojure , les protocoles fournissent une répartition dynamique mécanisme. Toutefois, cela ne doit pas être confondu avec l' envoi multiple que les protocoles Elixir expédient sur ​​un seul type.
Prise en charge de la documentation via docstrings Python-comme dans le langage de formatage Markdown [5]
Rien partagé la programmation concurrente via le passage de messages ( modèle Acteur ) [6]
L' accent mis sur récursivité et fonctions d'ordre supérieur au lieu d' effet secondaire à base de boucle
Concurrency léger en utilisant les mécanismes de Erlang. [5]
Lazy et collections async avec des ruisseaux
La correspondance de motifs [5]
Unicode support et UTF-8 cordes
Exemples [ modifier ]
Les exemples suivants peuvent être exécutés dans une coquille d'IEX ou enregistrés dans un fichier et de courir à partir de la ligne de commande en tapant elixir .

Classique Bonjour tout le monde par exemple:

IEX> IO. puts "Bonjour tout le monde!"
Bonjour le monde!
compréhensions

IEX> pour n <- [1, 2, 3, 4, 5], rem (n, 2) == 1, faites: n * n [1, 9, 25] Pattern Matching IEX> [1, a] = [1, 2]
IEX> a
2

IEX> {: ok, [bonjour: a]} = {: ok, [bonjour: "monde"]}
IEX> a
"monde"
Modules

defmodule Fun do
def fib (0), faites: 0
def fib (1), faites: 1
def fib (n) faire
fib (n - 2) + fib (n - 1)
fin
fin
fraye Séquentiellement mille processus

pour num <- 1 .. 1000, faire: spawn fn ->. IO puts "# {num * 2}" fin
effectuer une tâche asynchrone

task = Tâche async fn -.> perform_complex_action () fin
other_time_consuming_action ()
Tâche. Attendent tâche
Références [ modifier ]
Jump up ^ "Elixir / CHANGELOG.md à v1.2.4 · elixir-lang / elixir · GitHub" . GitHub.
Jump up ^ "Élixir / LICENCE au maître · elixir-lang / elixir · GitHub" . GitHub.
Jump up ^ "Elixir" . José Valim. Récupérée 17/02/2013.
Jump up ^ "Elixir - Une approche moderne de la programmation pour le Erlang VM" . Récupérée 17/02/2013.
^ Jump up to: A b c d e f "Elixir" . Récupérée 07/09/2014.
Jump up ^ Loder, Wolfgang (12 mai 2015). Erlang et Elixir pour Impératif programmeurs . "Chapitre 16: Code Structuration Concepts", titre de section "Modèle Acteur": Leanpub. Récupéré le 7 Juillet à 2015.
Liens externes [ modifier ]
icon Portal Portail de logiciel gratuit
Elixir site de langue
Code sur GitHub
Elixir - Une approche moderne à la programmation pour la présentation Erlang VM vidéo
Dave Thomas: "Programmation Elixir: Functional → Concurrent → Pragmatique → Fun" (livre)
Simon St. Laurent, J. David Eisenberg: "Présentation Elixir" (livre)
Chris McCord: "Métaprogrammation Elixir" (livre)
Joe Armstrong: "Une semaine avec Elixir" (blog)



Aucun commentaire:

Enregistrer un commentaire