
_START_ARTICLE_
Elixir
_START_SECTION_
历史
_START_PARAGRAPH_
José Valim是Elixir语言的设计者。他创造该语言的目标是在维持与现有Erlang工具链及生态环境兼容性的同时，让人们可以在Erlang虚拟机上进行扩展性更好的、高生产率的开发。
_START_SECTION_
示例
_START_PARAGRAPH_
以下示例可以在iex shell中运行或保存在文件中，并通过命令行键入命令运行elixir <filename>._NEWLINE_经典的Hello world 例子:_NEWLINE_iex> IO.puts("Hello World!")Hello World!_NEWLINE_Enumerable 推导_NEWLINE_iex> for n <- [1,2,3,4,5], rem(n, 2) == 1, do: n*n[1, 9, 25]_NEWLINE_模式匹配（解构）_NEWLINE_iex> [1, a] = [1, 2]iex> a2iex> {:ok, [hello: a]} = {:ok, [hello: "world"]}iex> a"world"_NEWLINE_模式匹配（多子句）_NEWLINE_iex> case File.read("path/to/file") doiex>   {:ok, contents} -> IO.puts("found file: #{contents}")iex>   {:error, reason} -> IO.puts("missing file: #{reason}")iex> end_NEWLINE_管道操作符_NEWLINE_iex> "1" |> String.to_integer() |> Kernel.*(2)2_NEWLINE_模块_NEWLINE_defmodule Fun do_NEWLINE_  def fib(0), do: 0_NEWLINE_  def fib(1), do: 1_NEWLINE_  def fib(n), do: fib(n-2) + fib(n-1)  _NEWLINE_end_NEWLINE_顺序产生1000个进程_NEWLINE_for num <- 1..1000, do: spawn fn -> IO.puts("#{num * 2}") end_NEWLINE_执行异步任务_NEWLINE_task = Task.async fn -> perform_complex_action() endother_time_consuming_action()Task.await task