関数型プログラミング
2018年8月22日 (水) 07:49時点におけるimported>Administratorによる版 (ページの作成:「関数型プログラミングとは、手続き型プログラミングの記述方法をベースに、以下のコーディング規約で記述することをいう...」)
関数型プログラミングとは、手続き型プログラミングの記述方法をベースに、以下のコーディング規約で記述することをいう。
- 手続き型プログラミング言語であれば「グローバル変数は使わない」
- オブジェクト指向プログラミング言語であれば「スタティック変数は使わない」
- オブジェクト指向プログラミング言語であれば「スタティック関数だけを使う」
- 「関数ポインタを使いまくる」
「グローバル変数を使わない」と「スタティック変数を使わない」というのは同じ意味である。つまり「関数と外部とのデータのやりとりは引数だけ」という意味である。実のところコボラーが好んで使った記法である。
「スタティック関数だけを使う」というのはスタティックおじさんの主張に近い。
「関数ポインタを使いまくる」というのはいわゆる高階関数を再現するために使われる。大雑把にいえば関数の引数に関数ポインタを渡すような感じである。
これらのコーディング規約をプログラミング言語の仕様として取り入れ、半ば強制するものを「関数型プログラミング言語」という。
関数型プログラミングは2010年ごろよりJavaScript界隈で爆発的に流行した。この記法はprototype.jsやjqueryの登場が起点となり、さらにはブラウザ戦争でGoogleなどがJavaScriptの実行性能を宣伝しまくり、JavaScriptに注目が集まったことも重なり、さらにはさらにはNode.jsの登場など、次々とその頭角を現した。そして、そもそも関数型プログラミング言語として生まれたものではないJavaScriptであったが、このように書けば「結構イケてるぜ」という風潮ができあがり、この記法をしやすいようC#などは言語拡張をするに至った。