Elixir (プログラミング言語)

プログラミング言語

Elixir (エリクサー) は並行処理の機能や関数型といった特徴を持つ、Erlang仮想マシン (BEAM) 上で動作するコンピュータプログラミング言語である。ElixirはErlangで実装されているため、分散システム、耐障害性、ソフトリアルタイムシステム等の機能を使用することができるが、拡張機能として、マクロを使ったメタプログラミング、そしてポリモーフィズムなどのプログラミング・パラダイムもプロトコルを介して実装されている。[2]

Elixir
パラダイム関数型プログラミング並行計算、プロセス指向プログラミング ウィキデータを編集
登場時期2012年 (2012)
開発者José Valim ウィキデータを編集
最新リリース1.16.3 / 2024年5月20日[1]
型付け強い動的型付け
影響を受けた言語ErlangRubyClojure ウィキデータを編集
プラットフォームクロスプラットフォーム ウィキデータを編集
ライセンスApache-2.0 ウィキデータを編集
ウェブサイトelixir-lang.org ウィキデータを編集
拡張子ex、exs ウィキデータを編集
テンプレートを表示

歴史

高い拡張性があり、Erlangの仮想環境上で動作するシステムを目標に、José Valimによって開発された。[3]

特徴

以下のサンプルはiexシェルまたはファイルに保存した上で elixir <filename> コマンドにて実行可能である。

Hello world
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> a2iex> {: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)    endend
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

参考文献

  • Dave Thomas:「プログラミングElixir」、オーム社、ISBN 978-4-274-21915-3(2016年8月19日)。
  • Dave Thomas:「プログラミングElixir」(第2版)、オーム社、ISBN 978-4-274-22637-3(2020年12月)。

外部リンク

🔥 Top keywords: メインページ特別:検索上戸彩エドワード・S・モースXG (音楽グループ)石丸伸二秋葉原通り魔事件山田昌蓮舫木村カエラ椎名林檎井上愛一郎杉浦太陽ブルース・リー渡部峻アンチヒーロー (テレビドラマ)岡崎慎司高橋里華河合優実MY FIRST STORY無職転生 〜異世界行ったら本気だす〜クリストファー・コロンブス古畑任三郎黎智英赤間麻里子髙嶋政伸怪獣8号若葉竜也山本未來小川博Z-1 (アイドルグループ)稲葉浩志眞栄田郷敦天野鎮雄石川さゆり長谷川博己ノーマンズランド三上悠亜森内寛樹