![見出し画像](https://assets.st-note.com/production/uploads/images/84306604/rectangle_large_type_2_0ed8f6af5004e0de4b29a903348ec6da.png?width=800)
📈PureScriptは文法はHaskellとほぼ同じトランスパイラ言語
PureScript は、JavaScript にコンパイルする、強い型付けを持つ純機能型プログラ ミング言語です。ウェブアプリケーションやサーバーサイドアプリケーションのほか、Electronを使ったデスクトップアプリケーションの開発にも利用できます。文法はHaskellとほぼ同じです。
PureScript は厳密な評価、永続的なデータ構造、型推論を特徴としています。PureScript の型システムは、代数的なデータ型とパターンマッチ、高階の型、型クラスと関数従属性、高階の多相性など、Haskell などの類似の関数型言語と多くの機能を共有しています。PureScriptの型システムでは、行ポリモーフィズムと拡張可能なレコードがサポートされています[7]が、GADTや型ファミリといったHaskellのより高度な機能のいくつかはサポートされていません。
読みやすいJavaScriptにコンパイルし、既存のJavaScriptコードを簡単に再利用可能
ウェブアプリケーション、ウェブサーバ、アプリなどの開発に必要なライブラリの豊富なコレクション
すぐにリビルドできる、優れたツールとエディタサポート
多くの学習リソースを持つ活発なコミュニティ
関数型技術や以下のような表現力豊かな型を使って、実世界のアプリケーションを構築することができます。
代数的なデータ型とパターンマッチ
行のポリモーフィズムと拡張可能なレコード
より高い種類を持つ型
関数従属性を持つ型クラス
高階層ポリモーフィズム
![](https://assets.st-note.com/img/1659955477016-oNlnDnu9Qm.png?width=800)
トランスパイラ(Transpiler)は、あるプログラミング言語で書かれたソースコードを、別のプログラミング言語のソースコードに変換するツールやプロセスを指します。このため、トランスパイラは「ソース・トゥ・ソース・コンパイラ」とも呼ばれることがあります。
トランスパイラの使用目的や背景には以下のようなものがあります:
新しい言語の採用促進: ある言語の新しいバージョンや機能を古いバージョンの言語で動作するように変換することで、その新しい言語や機能をより広く普及させる。
例: Babelは、ES6 (ECMAScript 2015) 以降のJavaScriptの機能を古いブラウザで動作するES5のコードに変換するためのトランスパイラです。
特定の環境の制約を回避: ソースコードを別の言語に変換することで、特定の環境やプラットフォームの制約や制限を回避する。
例: TypeScriptは、静的型付けや他の機能を持つJavaScriptのスーパーセットであり、通常のJavaScriptにトランスパイルされます。
移植性の向上: 一つの言語で書かれたコードを、異なる言語やプラットフォームに移植するための助けとして。
実験的な言語機能のテスト: 新しい言語機能のアイディアを試すために、それをサポートするトランスパイラを使用して、既存の言語に変換して試すことができる。
トランスパイラは、通常のコンパイラとは異なり、機械語やバイトコードに変換するのではなく、別の高水準のソースコードに変換します
お願い致します