Elixir
Elixir是一个基于Erlang虚拟机的函数式、面向并行的通用编程语言。Elixir以Erlang为基础,支持分布式、高容错、实时应用程序的开发,亦可通过宏实现元编程对其进行扩展,并通过协议支持多态。[2]
编程范型 | 多范式:函数式、并行式、面向进程、同像性 |
---|---|
发行时间 | 2012年 |
当前版本 |
|
型態系統 | 动态类型、强类型 |
許可證 | Apache License |
文件扩展名 | .ex、.exs |
網站 | elixir-lang |
啟發語言 | |
Clojure、Erlang、Ruby |
历史编辑
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> a2iex> {:ok, [hello: a]} = {:ok, [hello: "world"]}iex> a"world"
模式匹配(多子句)
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
管道操作符
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() endother_time_consuming_action()Task.await task
参考资料编辑
- ^ 1.0 1.1 Release 1.16.2. 2024年3月10日 [2024年3月22日].
- ^ Elixir. José Valim. [2013-02-17]. (原始内容存档于2017-09-30).
- ^ 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(页面存档备份,存于互联网档案馆)
- 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语言的一周(页面存档备份,存于互联网档案馆)
🔥 Top keywords: Baike: 首页Special:搜索九龍城寨之圍城胖猫跳江事件Energy (組合)淚之女王背着善宰跑逆天奇案2金智媛习近平郭葦昀金秀賢 (男演員)不夠善良的我們九龍寨城邊佑錫伍允龍春色寄情人劉俊謙 (香港)張書偉怪獸8號虽然不是英雄葉乃文謝坤達神耆小子六四事件我的婆婆怎麼那麼可愛排球少年!!角色列表唐振剛2024年湯姆斯盃Seventeen (組合)蕭景鴻排球少年!!WIND BREAKER—防風少年—安東尼·愛德華茲 (籃球運動員)ILLIT中华人民共和国中華民國BABYMONSTER與鳳行張文傑BOYNEXTDOOR彭丽媛笑看風雲日本母亲节习明泽金惠奫徐巧芯從Lv2開始開外掛的前勇者候補過著悠哉異世界生活德雷克 (歌手)搜查班長1958支配物种乘風2024張員瑛承欢记嚴爵香港梅龍高速公路塌陷事故柯建銘葬送的芙莉蓮迷宮飯轉生貴族憑鑑定技能扭轉人生~繼承弱小領土後,招募優秀人才打造最強領土~为人民服务 (2022年电影)黃道十二宮IVE (組合)草榴社区歐倩怡沒有秘密周雨彤柯佳嬿無職轉生~到了異世界就拿出真本事~謝京穎埃马纽埃尔·马克龙破墓周處除三害 (電影)許瑋甯Twitter五月天打天下2逆天奇案李主儐大谷翔平家族榮耀之繼承者胡子彤郭晉安毛泽东Baike: 分類索引沈伯洋白紙運動文化大革命城市猎人 (2024年电影)2024年花蓮地震(G)I-DLE城市猎人朴成焄郭宁宁2024年優霸盃哥吉拉-1.0汤姆斯杯