Elixir (プログラミング言語)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/04/09 01:56 UTC 版)
|
|
| パラダイム | 関数型プログラミング、並行計算、プロセス指向プログラミング |
|---|---|
| 登場時期 | 2012年 |
| 開発者 | José Valim |
| 最新リリース | 1.19.5[1] |
| 型付け | 強い動的型付け |
| 影響を受けた言語 | Erlang、Ruby、Clojure |
| プラットフォーム | クロスプラットフォーム |
| ライセンス | Apache-2.0 |
| ウェブサイト | elixir-lang |
| 拡張子 | ex、exs |
Elixir (エリクサー) は並行処理の機能や関数型といった特徴を持つ、Erlangの仮想マシン (BEAM) 上で動作するコンピュータプログラミング言語である。ElixirはErlangで実装されているため、分散システム、耐障害性、ソフトリアルタイムシステム等の機能を使用することができるが、拡張機能として、マクロを使ったメタプログラミング、そしてポリモーフィズムなどのプログラミングパラダイムもプロトコルを介して実装されている[2]。
歴史
高い拡張性があり、Erlangの仮想環境上で動作するシステムを目標に、José Valimによって開発された[3]。
特徴
例
以下のサンプルはiexシェルまたはファイルに保存した上で elixir <filename> コマンドにて実行可能である。
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> a
2
iex> {: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)
end
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
脚注
- ↑ “Release 1.19.5” (2026年1月9日). 2026年1月21日閲覧。
- ↑ “Elixir”. José Valim. 2013年2月17日閲覧。
- ↑ “Elixir - A modern approach to programming for the Erlang VM”. 2013年2月17日閲覧。
参考文献
- Dave Thomas:「プログラミングElixir」、オーム社、ISBN 978-4-274-21915-3(2016年8月19日)。
- Dave Thomas:「プログラミングElixir」(第2版)、オーム社、 ISBN 978-4-274-22637-3(2020年12月)。
外部リンク
- Elixir_(プログラミング言語)のページへのリンク