テクノロジ系8 / 25問
システムアーキテクト試験 令和6年度 春期 午前II 問8
純粋関数型言語がもつ特性の一つである参照透過性の説明はどれか。
選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】ア
参照透過性とは、ある式をその評価結果で置き換えても、プログラム全体の動作が変わらない性質です。純粋関数は外部の可変状態を参照又は変更せず、副作用ももたないので、同じ引数に対して常に同じ結果を返します。例えば、f(3)が常に9なら、式中のf(3)を9に置き換えても意味は変わりません。このため、処理の予測やテストがしやすく、式の評価順序を変える最適化や並列化にも向いています。また、一度求めた結果を再利用するメモ化も安全に適用しやすくなります。
イは誤りです。これは、関数を値と同様に扱い、引数として受け取ったり戻り値として返したりできる高階関数の説明です。 ウは誤りです。これは、プログラムを実行する前のコンパイル時に型の整合性を確認する静的型検査の説明です。参照透過性とは独立した性質です。 エは誤りです。これは、値が必要になるまで計算を先送りする遅延評価の説明です。評価時期の性質であり、同じ式を同じ値で置換できる性質ではありません。
【ポイント】 参照透過性は「同じ入力なら同じ出力」に加え、外部状態を変える副作用がないことと結び付けて覚えます。 高階関数、静的型付け、遅延評価はいずれも関数型言語で見られますが、別の概念です。
出典:令和6年度 春期 システムアーキテクト試験 午前II 問8
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の25問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる