
2026/08/02 20:23
Show HN: Fuse - 静的型付け関数型プログラミング言語
RSS: https://news.ycombinator.com/rss
要約▶
日本語訳:
Fuse は、Rust の安全性、Python の柔軟性、Haskell の力を融合させた静的型付けかつ純粋関数型の言語です。System F に基づく型システムを持ち、高次種別多型と適応型多型、代数データ型、ジェネリック、およびトレイトを特徴としています。すべての関数は純粋であり、パターンマッチング、高階関数、do 記法を活用しており、双方向型検査によってインタラクションには関数のシグネチャーのみで十分です。構文は Rust 風と Python 風のインデント、ML 由来のパターンのハイブリッドです。GRIN オプタイマによるコンパイル時全体プログラム最適化により、LLVM 基盤のネイティブコードが生成され、高速なパフォーマンス、小容量の実行ファイル、ゼロコストアブストラクションを実現します。ツールチェーンは Linux(x86_64)および macOS(ARM64)で動作し、以下のコマンドですぐにインストールできます:curl -fsSL https://fuselang.github.io/fuse/fuseup | sh
本文
Fuse: 高性能な純粋関数型言語
Fuse は、高位多型と適応的多型を備えた静的に型付けされた純粋関数型言語です。GRIN ワープログラモプティマイザへのコンパイルにより、LLVM を使用してネイティブコードが生成されます。
主な特徴
- 静的型付け: System F に基づく型システムを採用し、高位多型を提供します。代数データ型、ジェネリクス、トレイトを活用してドメインモデルを構築できます。
- 純粋関数型: すべての関数は純粋関数です。パターンマッチング、高位関数、
記法などを使いこなし、表現力豊かで組みやすいコードを作成できます。do - 型の推論: 双方向型チェックをサポートします。高位多型にも対応しており、可読性と簡潔さのために関数の型シグネチャのみを記述すれば、他の部分は自動的に推導されます。
- 明確な構文: Rust、Python、Scala、Haskell の良さを取り入れた、純粋関数型プログラミングに特化した読みやすい構文です。インデントブロックや ML 風シンタックスによりコードは清潔でアクセスしやすくなります。
- 高速なコンパイル: GRIN と LLVM を通じた最適化により、ゼロコストのアブストラクションを実現した軽量で高速なネイティブバイナリを生成します。
コード例
trait Functor[A]: fun map[B](self, f: A -> B) -> Self[B]; impl List[A]: fun fold[A, B](l: List[A], z: B, f: (B, A) -> B) -> B match l: Cons(h, t) => List::fold(t, f(z, h), f) Nil => z fun sum(l: List[i32]) -> i32 List::fold(l, 0, (a, b) => a + b) impl Functor[A] for List[A]: fun map[B](self, f: A -> B) -> List[B] List::fold(self, Nil[B], (t, h) => Cons(f(h), t)) fun fmap[A, B, F: Functor](f: A -> B, x: F[A]) -> F[B] x.map(f) fun main() -> IO[Unit] let l = Cons(1, Cons(2, Cons(3, Nil))) let l2 = fmap(x => x * 2, l) print(int_to_str(List::sum(l2)))
インストール方法
Linux (x86_64) または macOS (ARM64) で Fuse ツールチェーンをインストールするには、以下のコマンドを実行します。
curl -fsSL https://fuselang.github.io/fuse/fuseup | sh