Programming Elixir 1.6

From Doku

Capítulo 1

Motivación

Elixir es un lenguaje super performante que corre en la VM de Erlang. Una de sus capacidades distintivas es la tolerancia a fallos, que adopta de Erlang. Hace muy fácil la programación de concurrencia (ver el ejemplo más abajo). El autor hace hincapié en que los datos son inmutables por naturaleza en Elixir y eso facilita mucho la programación.

Ejemplo de Elixir

defmodule Parallel do
  def pmap(collection, func) do
    collection
    |> Enum.map(&(Task.async(fn -> func.(&1) end)))
    |> Enum.map(&Task.await/1)
  end
end

Con esta función (Parallel.pmap) podemos mapear colecciones con funciones que corran paralelamente.

El operador |> equivale al "pipe" | de la línea de comandos de Unix.

result = Parallel.pmap 1..1000, &(&1 * &1)

&(&1 * &1) es equivalente a lo que en Javascript sería: function(first_arg) { return first_arg * first_arg; }, es decir, una declaración de función anónima.

Instalando Elixir

Instrucciones de instalación de Elixir-lang.org