SHRDLU
(leer más)
Elixir es un lenguaje de programación funcional, concurrente y de propósito general que se ejecuta en la máquina virtual BEAM que también se utiliza para implementar el lenguaje de programación Erlang. Elixir se basa en Erlang y comparte las mismas abstracciones para crear aplicaciones distribuidas tolerantes a fallas. Elixir también proporciona herramientas productivas y un diseño extensible. Este último es compatible con metaprogramación en tiempo de compilación con macros y polimorfismo a través de protocolos.
Elixir es utilizado por empresas como Ramp, PagerDuty, Discord, Brex, E-MetroTel, Pinterest, Moz, Bleacher Report, The Outline, Inverse, Divvy, FarmBot y para crear sistemas integrados. La comunidad organiza eventos anuales en los Estados Unidos, Europa y Japón, así como eventos y conferencias locales menores.
José Valim es el creador del lenguaje de programación Elixir, un proyecto de investigación y desarrollo creado en Plataformatec. Sus objetivos eran permitir una mayor extensibilidad y productividad en la máquina virtual de Erlang manteniendo la compatibilidad con el ecosistema de Erlang.
Elixir estaba destinado a sitios y aplicaciones a gran escala. Elixir utiliza características de Ruby, Erlang y Clojure para desarrollar un lenguaje de "alta concurrencia" y "baja latencia". Elixir fue diseñado para manejar grandes volúmenes de datos. Elixir se utiliza en las industrias de telecomunicaciones, comercio electrónico y finanzas.
El 12 de julio de 2018, Honeypot lanzó un mini documental sobre Elixir.
Elixir sigue principalmente el control de versiones semántico y tiene solo 1 versión principal sin planes para una segunda. Cada una de las versiones secundarias admite un rango específico de versiones de Erlang/OTP. La versión de lanzamiento estable actual es 1.14.1.
with
construcción.Los siguientes ejemplos pueden ejecutarse en un iex
shell o guardarse en un archivo y ejecutarse desde la línea de comando escribiendo. elixir <filename>
Ejemplo clásico de Hola mundo:
iex > IO . pone ("¡Hola Mundo!") ¡Hola Mundo!
Lista de comprensión:
iex> for n <- [ 1, 2, 3, 4, 5 ], rem (n, 2) == 1, do: n * n [1, 9, 25]
Coincidencia de patrones (desestructuración):
es decir > [ 1, un ] = [ 1, 2 ] es decir > un 2 iex> {:ok, [ hola: a ]} = {:ok, [ hola: "mundo" ]} iex> a "mundo"
Coincidencia de patrones (cláusulas múltiples):
iex> expediente del caso . read ("ruta/al/archivo") do iex> {:ok, contenidos } -> IO . puts ("archivo encontrado: #{ contenidos } ") iex> {: error, razón } -> IO . puts ("archivo faltante: #{ motivo } ") iex> end
Operador de tubería:
iex> "1" |> Cadena . to_integer () |> Núcleo .* (2) 2
Módulos:
defmodule Fun do def fib (0), do: 0 def fib (1), do: 1 def fib (n), do: fib (n - 2) + fib (n - 1) end
Generando secuencialmente mil procesos:
para num <- 1.. 1000, haga: spawn fn -> IO . pone (" #{ num * 2 } ") fin
Realización asincrónica de una tarea:
tarea = tarea . async fn -> perform_complex_action () end other_time_Consuming_action () Task . esperar tarea
(leer más)
(leer más)
En cibernética, el término variedad denota el número total de elementos distinguibles de un conjunto, más a menudo el conjunto de estados, entradas o... (leer más)