fbpx
维基百科

Elixir

Elixir是一个基于Erlang虚拟机函数式、面向并行的通用编程语言。Elixir以Erlang为基础,支持分布式、高容错、实时应用程序的开发,亦可通过实现元编程对其进行扩展,并通过协议支持多态[2]

Elixir
编程范型多范式函数式并行式面向进程同像性
发行时间2012年,​12年前​(2012
当前版本
  • 1.15.7 (2023年10月14日;穩定版本)[1]
型態系統动态类型强类型
許可證Apache License
文件扩展名.ex、.exs
網站elixir-lang.org
啟發語言
ClojureErlangRuby

历史 编辑

José Valim是Elixir语言的设计者。他创造该语言的目标是在维持与现有Erlang工具链及生态环境兼容性的同时,让人们可以在Erlang虚拟机上进行扩展性更好的、高生产率的开发。[3]

特性 编辑

示例 编辑

以下示例可以在iex shell中运行或保存在文件中,并通过命令行键入命令运行 elixir <filename>.

经典的 Hello world 例子:

iex> IO.puts("Hello World!") Hello World! 

Enumerable 推导

iex> for n <- [1,2,3,4,5], rem(n, 2) == 1, do: n*n [1, 9, 25] 

模式匹配(解构)

iex> [1, a] = [1, 2] iex> a 2 iex> {:ok, [hello: a]} = {:ok, [hello: "world"]} iex> a "world" 

模式匹配(多子句)

iex> case File.read("path/to/file") do iex>  {:ok, contents} -> IO.puts("found file: #{contents}") iex>  {:error, reason} -> IO.puts("missing file: #{reason}") iex> end 

管道操作符

iex> "1" |> String.to_integer() |> Kernel.*(2) 2 

模块

defmodule Fun do  def fib(0), do: 0  def fib(1), do: 1  def fib(n), do: fib(n-2) + fib(n-1)  end 

顺序产生1000个进程

for num <- 1..1000, do: spawn fn -> IO.puts("#{num * 2}") end 

执行异步任务

task = Task.async fn -> perform_complex_action() end other_time_consuming_action() Task.await task 

参考资料 编辑

  1. ^ 1.0 1.1 Release 1.15.7. 2023年10月14日 [2023年10月19日]. 
  2. ^ Elixir. José Valim. [2013-02-17]. (原始内容于2017-09-30). 
  3. ^ Elixir - A modern approach to programming for the Erlang VM. [2013-02-17]. (原始内容于2012-11-29). 

外部链接 编辑

  • Elixir language website(页面存档备份,存于互联网档案馆
  • Code on GitHub(页面存档备份,存于互联网档案馆
  • Elixir School(页面存档备份,存于互联网档案馆
  • Elixir - A modern approach to programming for the Erlang VM video presentation(页面存档备份,存于互联网档案馆
  • Simon St. Laurent, J. David Eisenberg: "Introducing Elixir" (book)(页面存档备份,存于互联网档案馆
  • Erlang之父学习Elixir语言的一周(页面存档备份,存于互联网档案馆

elixir, 是一个基于erlang虚拟机的函数式, 面向并行的通用编程语言, 以erlang为基础, 支持分布式, 高容错, 实时应用程序的开发, 亦可通过宏实现元编程对其进行扩展, 并通过协议支持多态, 编程范型多范式, 函数式, 并行式, 面向进程, 同像性发行时间2012年, 12年前, 2012, 当前版本1, 2023年10月14日, 穩定版本, 型態系統动态类型, 强类型許可證apache, license文件扩展名, exs網站elixir, lang, org啟發語言clojure, erlan. Elixir是一个基于Erlang虚拟机的函数式 面向并行的通用编程语言 Elixir以Erlang为基础 支持分布式 高容错 实时应用程序的开发 亦可通过宏实现元编程对其进行扩展 并通过协议支持多态 2 Elixir编程范型多范式 函数式 并行式 面向进程 同像性发行时间2012年 12年前 2012 当前版本1 15 7 2023年10月14日 穩定版本 1 型態系統动态类型 强类型許可證Apache License文件扩展名 ex exs網站elixir lang wbr org啟發語言Clojure Erlang Ruby 目录 1 历史 2 特性 3 示例 4 参考资料 5 外部链接历史 编辑Jose Valim是Elixir语言的设计者 他创造该语言的目标是在维持与现有Erlang工具链及生态环境兼容性的同时 让人们可以在Erlang虚拟机上进行扩展性更好的 高生产率的开发 3 特性 编辑基于Erlang虚拟机 BEAM 与Erlang语言的无缝衔接 与Erlang的互调几乎无任何额外开销 基于宏的元编程能力 语言的抽象语法树作为头等公民 基于协议的多态实现 受到Clojure启发 协议提供了动态分派机制 但是不可混淆于多分派 因为Elixir协议在一个单一类型上进行分派 完善的文档支持 通过消息传递 演员模型 支持 Shared nothing 并行事务 强调利用递归和高阶函数的函数式编程胜过基于副作用和迴圈的命令式编程 一切均为表达式 惰性求值 拥有诸如futures和promises一类的异步流数据类型 模式匹配 Unicode支持 UTF 8字符串 示例 编辑以下示例可以在iex shell中运行或保存在文件中 并通过命令行键入命令运行 elixir i lt filename gt i 经典的 Hello world 例子 iex gt IO puts Hello World Hello World Enumerable 推导 iex gt for n lt 1 2 3 4 5 rem n 2 1 do n n 1 9 25 模式匹配 解构 iex gt 1 a 1 2 iex gt a 2 iex gt ok hello a ok hello world iex gt a world 模式匹配 多子句 iex gt case File read path to file do iex gt ok contents gt IO puts found file contents iex gt error reason gt IO puts missing file reason iex gt end 管道操作符 iex gt 1 gt String to integer gt Kernel 2 2 模块 defmodule Fun do def fib 0 do 0 def fib 1 do 1 def fib n do fib n 2 fib n 1 end 顺序产生1000个进程 for num lt 1 1000 do spawn fn gt IO puts num 2 end 执行异步任务 task Task async fn gt perform complex action end other time consuming action Task await task参考资料 编辑 1 0 1 1 Release 1 15 7 2023年10月14日 2023年10月19日 Elixir Jose Valim 2013 02 17 原始内容存档于2017 09 30 Elixir A modern approach to programming for the Erlang VM 2013 02 17 原始内容存档于2012 11 29 外部链接 编辑 nbsp 自由软件主题 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 gt Concurrent gt Pragmatic gt Fun book Simon St Laurent J David Eisenberg Introducing Elixir book 页面存档备份 存于互联网档案馆 Joe Armstrong A Week with Elixir blog entry Erlang之父学习Elixir语言的一周 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title Elixir amp oldid 69191525, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。