PureScript
表示
![]() PureScript7のロゴ | |
パラダイム | 関数型言語 |
---|---|
登場時期 | 2013 |
設計者 | Phil Freeman |
最新リリース | 0.13.6/ 2020年1月16日 |
型付け | Inferred, static, strong,強い静的型付け |
影響を受けた言語 | Haskell, JavaScript |
ライセンス | BSD[1] |
ウェブサイト | www.purescript.org |
拡張子 | .purs |
PureScriptは、JavaScriptにコンパイルされる純粋関数型プログラミング言語である。Webアプリケーション、サーバサイドアプリケーション、Electronを使用したデスクトップアプリケーションの開発に使用できる。構文はHaskellとほぼ同等。また、列多相(row polymorphism)や拡張可能なレコードを導入している。また、Haskellとは異なり、PureScriptは正格評価を採用している。
歴史
PureScriptは2013年にPhil Freemanによって設計された。彼がPureScriptに取り組み始めたのは、Haskellのセマンティクスを維持したままJavaScriptにコンパイルしようとする様々な試み(Fay、Haste、GHCJSの使用など)が彼の満足のいくものではなかったからだ[2] 。
その後、コミュニティにピックアップされ、GitHub上で開発されている。コミュニティによって開発された追加のコアツールには、専用のビルドツール「Pulp」[3]、ドキュメントディレクトリ「Pursuit」[4]、パッケージマネージャ「Spago」などがある。
特徴
PureScriptは、正格評価、永続的なデータ構造、型推論を特徴としている。 PureScriptの型システムは、Haskellのような類似の関数型言語と多くの機能を共有している。例えば、以下のような機能があげられる。
- 代数的データ型
- パターンマッチ
- 高カインド型
- 型クラス
- 関数従属性
- 高ランクポリモーフィズム(higher-rank polymorphism)
脚注
- ^ “purescript/purescript”. GitHub. 2020年5月22日閲覧。
- ^ “Read PureScript by Example | Leanpub”. leanpub.com. 2019年3月14日閲覧。
- ^ A build tool for PureScript projects, PureScript Contrib, (2019-03-08) 2019年3月14日閲覧。
- ^ “Pursuit”. pursuit.purescript.org. 2019年3月14日閲覧。
関連
外部リンク
- 公式ウェブサイト
- PureScript by Example (設計者Phil Freeman氏によるPureScriptの解説)
- 実例によるPureScript (PureScript by Exampleの日本語訳)