副作用と参照透過性とは?
副作用と参照透過性とは、副作用は、戻り値以外に外部の状態(グローバル変数、ファイル、DB、画面)を変えること。参照透過性は「同じ引数なら常に同じ結果を返し、副作用がない」性質で、これが成り立つ関数は順序入れ替え・並列実行・キャッシュ・単体テストが容易になる。関数型プログラミングの中核概念として問われる。
ふくさようとさんしょうとうかせい
副作用と参照透過性の意味
副作用は、戻り値以外に外部の状態(グローバル変数、ファイル、DB、画面)を変えること。参照透過性は「同じ引数なら常に同じ結果を返し、副作用がない」性質で、これが成り立つ関数は順序入れ替え・並列実行・キャッシュ・単体テストが容易になる。関数型プログラミングの中核概念として問われる。
副作用と参照透過性の具体例
消費税計算のように入力だけで結果が決まる処理は参照透過なので、テストで入出力を並べるだけで検証でき、複数スレッドから同時に呼んでも安全。逆に「呼ぶたびに連番を発行する」処理は副作用があり、並列実行では排他制御が必要になる。
副作用と参照透過性は試験でどう引っ掛けられる?
「引数を変更しないこと」と「副作用がないこと」は同義ではない。ログ出力やキャッシュ更新も副作用であり、順序依存を生む。またイミュータブルなデータ構造は副作用を防ぐが、更新のたびに新オブジェクトを作るためメモリと GC の負荷は増える。
副作用と参照透過性と関連する用語
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。