1.
プログラミングパラダイムの一つで、関数を第一級市民とし、状態や変更可能なデータを避ける手法。
プログラムの構築において、関数を最も重要な要素として扱い、副作用(プログラムの状態変更)を避け、純粋な関数(同じ入力に対して常に同じ出力を返す関数)を多用することで、コードの予測可能性とテスト容易性を高める考え方です。数学的な関数に似ており、入力と出力の関係が明確になります。
Functional
programming
emphasizes
immutability
and
pure
functions.
(関数型プログラミングは不変性と純粋関数を重視します。)
Functional programming
関数型プログラミング
emphasizes
〜を強調する、重視する
immutability
不変性、変更できない性質
and
そして
pure functions
純粋関数(副作用がなく、同じ入力に対して常に同じ出力を返す関数)
2.
状態変更を最小限に抑え、プログラムの振る舞いを数学的な関数のように扱うことで、命令型プログラミングやオブジェクト指向プログラミングとは異なるアプローチをとる。
命令型プログラミングが「どのように計算するか」に焦点を当て、状態を変更する手順を記述するのに対し、関数型プログラミングは「何を計算するか」に焦点を当て、状態の変更を避けることで、並行処理やテストが容易になるという利点があります。これは、プログラムが実行されるたびに同じ入力に対して同じ結果を保証する「純粋な関数」を使用することで実現されます。