案件評判
関数型プログラミング言語を理解する!初心者でもわかる歴史、基礎知識、代表的な種類などを簡単に解説!

関数型プログラミング言語を理解する!初心者でもわかる歴史、基礎知識、代表的な種類などを簡単に解説!

最終更新:2020/09/24 投稿:2020/09/13
関数型プログラミング言語を理解する!初心者でもわかる歴史、基礎知識、代表的な種類などを簡単に解説!

関数型プログラミング言語は関数の組み合わせによって課題を解決する仕組みで構成されるプログラミング言語におけるパラダイムの一種です。歴史を辿ると1930年代にもルーツがあり、最初に誕生した言語はLIPSと言われております。現在ではR言語、Scala、Pythonなどにこのパラダイムが採用されております。この記事では関数型プログラミング言語の歴史、基礎知識、代表的な種類などを簡単に解説させていただきます。

関数型プログラミング言語とは

関数型プログラミング言語とは関数の組み合わせによって課題を解決する仕組みで構成されるプログラミング言語の種類です。宣言型プログラミング言語の一種であり、関数は引数の適用から先行式の評価を後続式の適用につなげて終端の評価を導き出す式のツリー構造として定義されます。代表的な関数型プログラミング言語としてR言語、ScaLa、Pythonなどが挙げられます。

『関数型プログラミング言語の基本情報』
誕生時期:1950年半
開発者:ジョン・マッカーシー氏
種別:宣言型プログラミング
代表言語:R言語、Scala、Python

関数型プログラミング言語の歴史

関数型プログラミング言語の歴史を見ていきましょう。

年代 出来事
1930年代 数学者アロンゾ・チャーチによって関数型プログラミングの基底となる”ラムダ計算”が発明される
1950年代 マサチューセッツ工科大学の計算機科学者ジョン・マッカーシーによって初の関数型プログラミグ言語『LISP』開発される
1960年代 商業分野と産業分野に積極導入
『LIPS』の発展が著しい
1970年代 計算機科学者ロビン・ミルナーによって『ML』は代数的データ型、パラメトリック多相、型推論が開発される
1980年代 『ML』を標準化する目的の下でHindley–Milner型体系を導入した「Standard ML」が発表される
1990年代 純粋関数型言語『Haskell』が発表される
統計解析言語『R言語』が発表される
2000年代 Java仮想マシン動作でオブジェクト指向と関数型を融合した「Scala」誕生

代表的な手続き型プログラミング言語

代表的な手続き型プログラミング言語を見ていきましょう。

R言語

R言語とはニュージーランドにあるオークランド大学のロス・イハカ氏とロバートクリフォード氏によって1995年に開発された統計解析向けのプログラミング言語です。S言語というプログラミング言語を元にC言語やFORTRANを用いて開発されました。種別はPHPやRuby、javaScriptと同じインタープリタ言語です。R言語の大きな特徴はJavaやC言語などの代表的なオープン系開発言語とは違い『データ解析・統計解析』の専門言語ということが挙げられます。
そのためデータ解析・統計解析においてはその他のプログラミング言語と比べても非常にパフォーマンスが高いと評価されております。R言語は専門分野が分野なだけあり、元々研究や学術において活用されておりましたが、近年は企業においても様々なシーンで活用されております。近年大きな注目を集めている機械学習やビッグデータの分野で活用できることが人気を集める理由と言えます。

『R言語の基本情報』
誕生時期:1995年
開発者:ロス・イハカ氏、ロバートクリフォード氏
種別:インタプリタ言語
特徴:①データ解析・統計解析専門/②ベクトル処理言語/③視覚化に優れたグラフ機能

R言語の歴史や特徴、基礎知識を解説している記事はこちら>>

Scala

Scalaとはスイス連邦工科大学のマーティン・オーダスキー氏によって2001年に設計されたJavaに影響を受けたオブジェクト指向と関数型言語の特徴を統合したプログラミング言語です。世に公開がされたのは2004年始めの頃でJavaプラットフォームにリリースされました。ScalaはJVM上で動作するため、Javaのライブラリを不自由なく使えるという特徴があります。他にも.NET Framework上でも動作するため、同様に.NETライブラリも使用することが出来ます。(※.NETサポートは2012年に中止)2003年に誕生した比較的新しいプログラミング言語ですが、2019年に『GitHubPullRequest』によって発表されたプログラミング言語使用率ランキングによると第12位を記録するほどの人気度が伺えました。日本国内でも様々な有名サービスがScalaを用いた開発を行っており、代表的なものとして『SmartNews』『Chatwork』などが挙げられます。

『Scalaの基本情報』
誕生時期:2003年
開発者:ロバート・グリーセマー氏等
特徴:①オブジェクト指向/②関数型言語

Scalaの特徴やメリット、基礎知識を解説している記事はこちら>>

Python

Pythonとはグイド・ヴァンロッサム氏によって1991年に開発された汎用的に使用されるプログラミング言語です。サーバサイド言語としてWebアプリケーションやデスクトップアプリケーションの開発に使われるだけでなく、組み込み開発、自動処理、統計・解析、機械学習など幅広い領域に対応出来るプログラミング言語として親しまれております。Pythonはプログラミング言語の中でも高い人気を集めており、GitHubの2019年調べによるとJavaを抜き2番目に人気のある言語となっております。特徴として『コードがシンプルで覚えやすい』『少ない記述で多くの処理が可能』などが挙げられます。Pythonは人工知能(AI)やビッグデータなどトレンドの分野にて重宝されております。このように幅広い分野にて扱われる汎用的なプログラミング言語として高い人気を集めております。

『Python基本情報』
誕生時期:1991年
開発者:グイド・ヴァンロッサム氏
種別:スクリプト言語
特徴:①コードがシンプルで覚えやすい/②少ない記述で多くの処理が可能

Pythonの特徴やメリット、基礎知識を解説している記事はこちら>>

F#

F#とはマイクロソフト社のドン・サイム氏によって2005年に開発されたオープンソースのマルチパラダイム言語です。F#がマルチパラダイムと言われる由縁は関数型プログラム、手続き型プログラム、オブジェクト指向プログラムと様々なパラダイムをサポートしていることにあります。そのため同社が開発・提供するC#やVB(VisualBasic)などの.NET言語を置き換える形でF#を使用することもできます。また同社が提供するVisual Studio 2010より標準開発言語として追加されております。

『F#の基本情報』
誕生時期:2005年
開発者:ドン・サイム氏(マイクロソフト社)
種別:マルチパラダイム言語

F#の歴史や特徴、基礎知識を解説している記事はこちら>>

その他

LISP 1958年 関数型プログラミング言語の先駆者
ISWIM 1966年 静的型付け、先行評価
ML 1973年 静的型付け、先行評価
Scheme 1975年 LISP方言、動的型付け、先行評価
FP 1977年 関数水準言語、動的型付け、先行評価
Standard ML 1983年 ML派生、静的型付け、先行評価
Miranda 1985年 純粋関数型、静的型付け、遅延評価
Haskell 1990年 純粋関数型、静的型付け、遅延評価
Dylan 1993年 LISP方言、動的型付け、先行評価
OCaml 1996年 ML派生、静的型付け、先行評価、オブジェクト指向
Clojure 2007年 LISP方言、動的型付け、先行評価
Rust 2010年 静的型付け、先行評価

まとめ

関数型プログラミング言語を理解するために初心者でもわかる歴史、基礎知識、代表的な種類などを簡単に解説させて頂きました。関数型プログラミング言語を一言で表すと『関数の組み合わせによって課題を解決する仕組みで構成されるプログラミング言語の種類』です。歴史を辿ると古くから誕生した概念として知られておりますが、プログラミング言語の中でも比較的新しい部類に入るR言語やF#などでも採用されております。関数型プログラミング言語についてこちらの記事に記載されている最低限の内容は理解をしておくようにしましょう。

案件評判
常駐する会社が、実際どんな会社で、どんな案件が動いているか詳しく知りたい。
これは常駐形態で働く方なら誰もが感じていることだと思います。 常駐の働き方をされている方は是非一度「案件評判」で案件についての評判をチェックしてみてください。