3章JavaScriptにおける関数型プログラミング

Reactを学ぶうちに、読者は関数型プログラミングの考え方が背景にあることに気づくでしょう。実際に関数型プログラミングの概念は、今日のJavaScriptにおいて頻繁に適用されるようになりましたが、Reactにはとくにその影響が色濃く現れています。

ピンとこない読者の方も、じつはすでに関数型プログラミングの影響を受けているかもしれません。たとえば配列のmapreduceメソッドを使用したことがある方は、すでに関数型プログラマーと言えます。この関数型プログラミングの影響は、Reactのコアライブラリだけでなく、Reactのエコシステムで流通している多くのサードパーティーライブラリにも当てはまります。

関数型プログラミングの誕生は、1930年代にプリンストン大学のAlonzo Churchにより考案されたラムダ計算(λ-calculus)†1まで遡ります。数学における関数の概念はすでに17世紀から存在していましたが、ラムダ計算では引数として関数を受け取り、その関数をもとに別の関数を返す、高階関数という概念が導入されました。

[†1] Dana S. Scottによる関数型プログラミングの歴史概観『λ-Calculus: Then & Now』(https://oreil.ly/k0EpX

1950年代に入ると、John McCarthyはこのラムダ計算のコンセプトを適用したLispという新しいプログラミング言語を作りました。Lispにおいて、関数は第一級オブジェクト(First-class Citizen)です。あるプログラミング言語において、あるオブジェクトを変数に格納できるだけでなく、関数の引数として渡したり、戻り値として受け取ることができる場合、そのオブジェクトを第一級オブジェクトと呼びます。 ...

Get Reactハンズオンラーニング 第2版 ―Webアプリケーション開発のベストプラクティス now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.