Elixir(一種函式式程式語言)

Elixir(一種函式式程式語言)

本詞條是多義詞,共2個義項
更多義項 ▼ 收起列表 ▲

Elixir 是一個基於 Erlang 虛擬機的函式式、面向並行的通用程式語言。Elixir 以 Erlang 為基礎,支持分散式、高容錯、實時應用程式的開發,同時亦對其進行擴展使之藉助宏實現元編程,並通過協定支持多態。

基本介紹

  • 中文名:Elixir
  • 外文名:Elixir
  • 編程范型:函式式,並行式,面向進程,同像性
  • 發行時間:2012
  • 最新發行時間:1.0.0 / 2014年9月10日,6個月前
  • 型態系統:動態類型, 強類型
  • 啟發語言Erlang, Ruby, Clojure
  • 許可證:Apache License
  • 檔案擴展名:.ex, .exs
  • 網站:www.elixir-lang.org
歷史,特性,例子,

歷史

José Valim 是 Elixir 語言的設計者。他創造該語言的目標是在維持與現有 Erlang 工具鏈及生態環境兼容性的同時,讓人們可以在 Erlang 虛擬機上進行擴展性更好的、高生產率的開發。
Elixir

特性

  • 基於 Erlang 虛擬機(BEAM)之上。
  • 與 Erlang 語言的無縫銜接;與 Erlang 的互調幾乎無任何額外開銷。
  • 基於宏的元編程能力,語言的抽象語法樹作為頭等公民。
  • 基於協定的多態實現。(啟發自Clojure)
  • 完善的文檔支持。
  • 通過訊息傳遞(參與者模式)支持 Shared-nothing 並行事務。
  • 強調利用遞歸和高階函式的函式式編程勝過基於副作用和循環的命令式編程。
  • 一切均為表達式。
  • 惰性求值,擁有諸如 futures 和 promises 一類的異步流數據類型。
  • 模式匹配。
  • Unicode 支持,UTF-8 字元串。

例子

以下的所有例子也可以保存到檔案中並通過elixir <filename>在命令行中運行
Hello World
iex> IO.puts "Hello World!"Hello World!
列表推導
iex> for n <- [1,2,3,4,5], rem(n,2) == 1, do: n*n[1, 9, 25]
模式匹配
iex> [1, a] = [1, 2]iex> a2iex> {:ok, [hello: a]} = {:ok, [hello: "world"]}iex> a"world"
模組
defmodule Fun do  def fib(0), do: 0  def fib(1), do: 1  def fib(n) do    fib(n-2) + fib(n-1)  endend
進程spawn
for num <- 1..1000, do: spawn fn -> IO.puts "#{num * 2}" end
異步任務
task = Task.async fn -> perform_complex_action() endother_time_consuming_action()Task.await task

相關詞條

熱門詞條

聯絡我們