コンテンツにスキップ

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

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Gleam
 ウィキデータを編集
Gleamのロゴ
パラダイム 関数型プログラミング、マルチパラダイムプログラミング、並行計算 ウィキデータを編集
登場時期
  • 2016年6月13日 ウィキデータを編集
設計者 Louis Pilfold ウィキデータを編集
最新リリース 1.14.0[1] ウィキデータを編集/ 2025年12月25日 (2か月前)
型付け
影響を受けた言語 ElmOCamlRust、Alpaca、ErlangElixirGoJavaScript ウィキデータを編集
プログラミング言語 Rust
ライセンス Apache-2.0 ウィキデータを編集
ウェブサイト
拡張子 .gleam
テンプレートを表示

Gleamとは、ErlangまたはJavaScriptのソースコードにコンパイルされる汎用並行関数型高水準プログラミング言語である[2][3][4]

Gleamは静的型付き言語であり[5]、Erlang仮想マシンのBEAM英語版で実行される最も人気のある言語であるErlangElixirとは異なる。GleamはErlangのアクターフレームワークのOTPの型安全な独自の実装を持っている[6]。パッケージはHexパッケージ管理システムを使用して提供され、Gleam用のパッケージを見つけるためのインデックスが利用できる[7]

歴史

[編集]

Gleamの最初の番号付きバージョンは2019年4月15日に公開された[8]。JavaScriptへのコンパイル機能はバージョン0.16で導入された[9]

2023年、Erlang Ecosystem Foundationは学習プラットフォームExercism英語版上でGleamを学習するためのコースの作成に資金を提供した[10]

バージョン1.0.0は2024年3月4日に公開された[11]

機能

[編集]

Gleamには他の関数型プログラミング言語と同様の以下の機能が含まれている:[4]

[編集]

"Hello, World!"の例:

import gleam/io

pub fn main() {
  io.println("hello, world!")
}

Gleamは末尾再帰最適化に対応している:[12]

pub fn factorial(x: Int) -> Int {
  // The public function calls the private tail recursive function
  factorial_loop(x, 1)
}

fn factorial_loop(x: Int, accumulator: Int) -> Int {
  case x {
    1 -> accumulator

    // The last thing this function does is call itself
    _ -> factorial_loop(x - 1, accumulator * x)
  }
}

実装

[編集]

GleamのツールチェーンはRustプログラミング言語で実装されている[13]。ツールチェーンはコンパイラ、ビルドツール、パッケージ管理システム、ソースコードフォーマッタ、Language Server英語版を含む単一のネイティブバイナリ実行ファイルである。Gleamコンパイラを含むWebAssemblyバイナリも利用でき、これによりGleamコードをウェブブラウザ内でコンパイルできる。

脚注

[編集]
  1. ^ Release 1.14.0” (2025年12月25日). 2026年1月6日閲覧。
  2. ^ a b Gleam Language” (英語). gleam.run. 2025年2月3日閲覧。
  3. ^ Krill, Paul (2024年3月5日). “Gleam language available in first stable release”. InfoWorld. https://www.infoworld.com/article/2336354/gleam-language-available-in-first-stable-release.html 2024年3月26日閲覧。 
  4. ^ a b Eastman, David (2024年6月22日). “Introduction to Gleam, a New Functional Programming Language”. The New Stack. https://thenewstack.io/introduction-to-gleam-a-new-functional-programming-language/ 2024年7月29日閲覧。 
  5. ^ De Simone, Sergio (2024年3月16日). “Erlang-Runtime Statically-Typed Functional Language Gleam Reaches 1.0”. InfoQ. https://www.infoq.com/news/2024/03/gleam-erlang-virtual-machine-1-0/ 2024年3月26日閲覧。 
  6. ^ Getting to know Actors in Gleam – Raúl Chouza. Code BEAM America (英語). 27 March 2024. YouTubeより2024年5月6日閲覧.
  7. ^ Introducing the Gleam package index – Gleam” (英語). gleam.run. 2024年5月7日閲覧。
  8. ^ Hello, Gleam! – Gleam” (英語). gleam.run. 2024年5月6日閲覧。
  9. ^ v0.16 – Gleam compiles to JavaScript! – Gleam” (英語). gleam.run. 2024年5月7日閲覧。
  10. ^ Alistair, Woodman (2023年12月). “Erlang Ecosystem Foundation Annual General Meeting 2023 Chair's Report”. 2025年2月3日閲覧。
  11. ^ Gleam version 1 – Gleam” (英語). gleam.run. 2024年5月7日閲覧。
  12. ^ Tail Calls”. The Gleam Language Tour. 2024年3月26日閲覧。
  13. ^ gleam-lang/gleam”. Gleam (2024年5月6日). 2024年5月6日閲覧。

外部リンク

[編集]