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