差分

ナビゲーションに移動 検索に移動

関数型プログラミング

2,184 バイト追加, 2018年8月22日 (水) 07:49
ページの作成:「関数型プログラミングとは、手続き型プログラミングの記述方法をベースに、以下のコーディング規約で記述することをいう...」
関数型プログラミングとは、手続き型プログラミングの記述方法をベースに、以下のコーディング規約で記述することをいう。
* 手続き型プログラミング言語であれば「グローバル変数は使わない」
* オブジェクト指向プログラミング言語であれば「スタティック変数は使わない」
* オブジェクト指向プログラミング言語であれば「スタティック関数だけを使う」
* 「関数ポインタを使いまくる」
「[[グローバル変数]]を使わない」と「[[スタティック変数]]を使わない」というのは同じ意味である。つまり「[[関数]]と外部との[[データ]]のやりとりは[[引数]]だけ」という意味である。実のところ[[コボラー]]が好んで使った記法である。

「[[スタティック関数]]だけを使う」というのは[[スタティックおじさん]]の主張に近い。

「[[関数ポインタ]]を使いまくる」というのはいわゆる[[高階関数]]を再現するために使われる。大雑把にいえば関数の引数に関数ポインタを渡すような感じである。

これらの[[コーディング規約]]を[[プログラミング言語]]の[[仕様]]として取り入れ、半ば強制するものを「[[関数型プログラミング言語]]」という。

関数型プログラミングは2010年ごろより[[JavaScript]]界隈で爆発的に流行した。この記法は[[prototype.js]]や[[jquery]]の登場が起点となり、さらにはブラウザ戦争で[[Google]]などがJavaScriptの実行性能を宣伝しまくり、JavaScriptに注目が集まったことも重なり、さらにはさらには[[Node.js]]の登場など、次々とその頭角を現した。そして、そもそも関数型プログラミング言語として生まれたものではないJavaScriptであったが、このように書けば「結構イケてるぜ」という風潮ができあがり、この記法をしやすいよう[[C Sharp|C#]]などは言語拡張をするに至った。

== 関連項目 ==
* [[スタティックおじさん]]
匿名利用者

案内メニュー