関数型言語はかなり理解していないため、百度を尋ね、ブログなどほとんど次の要約をした知っています。
何
関数型言語(関数型言語)プログラミング言語のクラスは、非ノイマンスタイルのプログラミング言語です。関数型言語は、元の関数、関数型と関数定義の主成分です。
この言語は、データ構造を整理する強力な能力を有し、単一の値の処理として、(配列など)のデータ構造であってもよい。パラメーターとして機能することができる、そのような定義された関数の関数として生じ得ます
高階関数と呼ばれ、プログラムが関数で、プログラムは、構造化データに作用し、構造化された結果を生成し、基本的に仕事フォン・ノイマン「単語単位」の言語を変更します。
関数型プログラミング言語の目的は、可能なエミュレートされた数学関数です。
関数型言語のコア機能:
(1)「機能」ヘッドを、命令型言語「可変」は、機能は、他のパラメータの関数として、他の変数に割り当てることができるように、
戻り値として、または他の機能。
(2)変数の値を変更しません
(3)式だけではなく、文。ここでの声明では、いくつかの操作価値は戻りませ指します。
(4)透明な参照(参考透明性)、関数を実行すると、外部変数に依存しない、または「状態」は、単に、ということを意味します
入力(パラメータ)を用いて、常に数学関数の特性と一致している同一の出力(戻り値)を生成します。
命令型言語のグローバル変数があるので、あなたはこれを行うことはできません。
(5)比較命令型言語、再帰的循環
含める
関数型プログラミング言語は以下のとおりです。
Haskellは公表され、1980年代後半における関数型プログラミング言語で、Haskellの関数型プログラミング言語は、ミランダの根拠が乗っていることは、標準化されたミランダは、でした
だから、関数型プログラミングの他の関連する原則のこの言語のコレクションは、このようなリンクリストや行列などの一部のデータ構造を完了するために、それらを繰り返すあまり費やすことなく、それを開発し、関数型プログラミング言語は、現在最も広く使用されている研究です。
別の関数型プログラミング言語クリーン、Haskellは、それは別の場所をたくさん持っています。現在、言語はC、ミシガン大学のニッケルZimeiメンテナンスの責任で書かれています。
そこ関数型プログラミング言語のメタ言語、エジンバラのメタ言語大学でもあるし、70年代後半で前世紀に開発され、それは、この返品理由で、非純粋関数型プログラミング言語として分類されました
カテゴリーは副作用と命令型プログラミングの使用を可能にするからです。
現在、.NETプラットフォームのオープンラベル試験のための言語である関数型プログラミング言語F#は、あります。
そこOCamlで、Lispの、など
関数型プログラミング言語の特性は次のとおりです。
1、パラレル。関数型プログラミングでは、プログラマは、プログラムを変更する必要はありません、プログラムを同時に実行することができます。プログラムの実行中は、デッドロック。
図2に示すように、ユニットテスト。関数型プログラミングでは、各シンボルので、最終的なプログラムであるので、この関数は副作用を生じません。
3、追加アクション。関数型プログラミング言語では、結果の全ての機能が戻り値であり、外部変数への変更を含む、他の行為は、存在しません。
4、ステータスを変更しません。関数型プログラミングにおいて、プログラミング言語は、変数を変更しないので、使用時に、それは他のプログラミング言語のような特性関数型プログラミング言語であってもよいです。言語の他のタイプでは、変数は、状態を保存するために使用されています。
図5に示すように、透明な参照。関数型プログラミングでは、透明は、外部変数や関数の状態に機能しなくなるステップを巻き込むなかった、参照の実行時間関数を指しますが、機能は常に、唯一の入力パラメータに同じパラメータ入力に依存します同じ関数の戻り値を取得します。
6、コード展開熱。機能プログラム、すなわち、関数に渡されるすべてのパラメータの状態が展開する熱を容易にする、スタックに格納されています。
なぜ人気
まず、関数型プログラミング言語のコードは、開発のスピードを加速するために、非常に簡単です。そして、機能プログラミング言語ので使用時に、プログラマは、それによって反復コードを減らす、多くの機能を使用することができ、したがって、手順は比較的短いです。
第二に、関数型プログラミング言語は、我々が使用する自然言語、学習中のプログラマに近い、より迅速かつ簡単にそれを使用。自由の関数型プログラミング言語の度合いは、自然言語で書かれたコードに非常に近い、高いです。手紙
プログラミング言語コード管理の数がもっと便利に。外部への依存関係のない関数型プログラミングは、外の世界の状態を変更することはできません。プログラマは、同じパラメータの結果を返す関数に指定されたパラメータは、同じでなければなりません。
また、関数型プログラミング言語でも、それは単に変数を変更していないため、プログラマは、関数型プログラミングの間にデッドロックの問題を検討する必要はありませんので、スレッドをロックする問題がないことができます並行プログラミングをサポートしています。
最後に、関数型プログラミング言語コードのサポートホットコードのアップグレード。