Elixir (编程语言)
外观
编程范型 | 多范式: 函数式, 并行式, 面向进程, 同像性 |
---|---|
发行时间 | 2012 |
当前版本 |
|
型態系統 | 动态类型, 强类型 |
許可證 | Apache License |
文件扩展名 | .ex, .exs |
網站 | www |
受影响于 | |
Erlang, Ruby, Clojure |
Elixir 是一个基于 Erlang 虚拟机的函数式、面向并行的通用编程语言。Elixir 以 Erlang 为基础,支持分布式、高容错、实时应用程序的开发,同时亦对其进行扩展使之借助宏实现元编程,并通过协议支持多态。[2]
历史
José Valim 是 Elixir 语言的设计者。他创造该语言的目标是在维持与现有 Erlang 工具链及生态环境兼容性的同时,让人们可以在 Erlang 虚拟机上进行扩展性更好的、高生产率的开发。[3]
特性
- 基于 Erlang 虚拟机(BEAM)之上。
- 与 Erlang 语言的无缝衔接;与 Erlang 的互调几乎无任何额外开销。
- 基于宏的元编程能力,语言的抽象语法树作为头等公民。
- 基于协议的多态实现。(启发自Clojure)
- 完善的文档支持。
- 通过消息传递(参与者模式)支持 Shared-nothing 并行事务。
- 强调利用递归和高阶函数的函数式编程胜过基于副作用和循环的命令式编程。
- 一切均为表达式。
- 惰性求值,拥有诸如 futures 和 promises 一类的异步流数据类型。
- 模式匹配。
- Unicode 支持,UTF-8 字符串。
参考
- ^ Release 1.18.3. 2025年3月6日 [2025年3月23日].
- ^ Elixir. José Valim. [2013-02-17].
- ^ Elixir - A modern approach to programming for the Erlang VM. [2013-02-17].
外部链接
- Elixir language website
- Code on GitHub
- Elixir - A modern approach to programming for the Erlang VM video presentation
- Dave Thomas: "Programming Elixir: Functional |> Concurrent |> Pragmatic |> Fun" (book)
- Simon St. Laurent, J. David Eisenberg: "Introducing Elixir" (book)
- Joe Armstrong: "A Week with Elixir" (blog entry)