システムアーキテクト暗記無料で始める

参照透過性とは?さんしょうとうかせい

参照透過性とは、同じ引数で呼べば常に同じ結果を返し、外部の状態を書き換えないという性質。式をその評価結果で置き換えても意味が変わらないため、実行順序を入れ替えても安全で、並列化・メモ化・自動テストのいずれもやりやすくなる。関数型プログラミングの土台になる概念。

最終更新:2026-10-06

試験情報

システムアーキテクト試験の過去問では1回出題されています。

システムアーキテクト試験の頻出用語/午前II

この語が出る過去問を解く →

背景

共有された可変状態に依存する処理は、単体では動くのにマルチスレッドや再実行で結果が変わり、原因の再現に時間を取られる。入出力を引数と戻り値だけに閉じ込めれば、その関数の正しさをまわりの文脈から切り離して確かめられる。並列度を上げてよいかどうかを判断する根拠になる性質であり、副作用をどの層へ寄せるかという設計判断にも直結する。

具体例

消費税額を求める処理を、税率も金額も引数で受け取る関数にしておけば、設定ファイルや現在日時を読む版と違い、いつどのスレッドから呼んでも同じ値を返し、計算結果を再利用しても安全になる。

試験での引っ掛け

副作用の有無で判断する。乱数の取得、現在時刻の参照、大域変数やファイル・DBの更新を含む関数は、引数が同じでも結果や外部状態が変わるため参照透過ではない。逆に内部で局所変数を書き換えていても、外から観測できなければ参照透過性は保たれる。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では1回出題
  • 分野:午前II
  • 副作用の有無で判断する。