Elixir (编程语言)
外观

编程范型 | 多范式:函数式、并行式、面向进程、同像性 |
---|---|
发行时间 | 2012年 |
当前版本 |
|
型態系統 | 动态类型、强类型 |
許可證 | Apache License |
文件扩展名 | .ex、.exs |
網站 | elixir-lang |
受影响于 | |
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.4. 2025年5月21日 [2025年5月25日].
- ^ 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 School
- 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)
- Erlang之父学习Elixir语言的一周