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

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

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

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

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

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

 機能 
Gleamには他の関数型プログラミング言語と同様の以下の機能が含まれている:
 エラーハンドリングのためのResult型
 不変オブジェクト
 代数的データ型
 パターンマッチング
 ヌルポインタはない
 暗黙の型変換はない

 例 
"Hello, World!"の例:
import gleam/io

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

Gleamは末尾再帰最適化に対応している:
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プログラミング言語で実装されている。ツールチェーンはコンパイラ、ビルドツール、パッケージ管理システム、ソースコードフォーマッタ、を含む単一のネイティブバイナリ実行ファイルである。Gleamコンパイラを含むWebAssemblyバイナリも利用でき、これによりGleamコードをウェブブラウザ内でコンパイルできる。

 脚注 

 外部リンク 



Category:プログラミング言語
Category:JavaScript

Category:自由ソフトウェアのプロジェクト
Category:関数型プログラミング言語

Category:Apache Licenseのソフトウェア