LINEスタンプ制作代行サービス・LINEスタンプの作り方!

お電話でのお問い合わせ:03-6869-8600

stampfactory大百科事典

副作用 (プログラム)

プログラミングにおける副作用(ふくさよう)とは、ある機能がコンピュータの(論理的な)状態を変化させ、それ以降で得られる結果に影響を与えることをいう。代表的な例は変数への値の代入である。例えば与えられた数字を二倍して返す機能"codice_1"があるとする。このような機能では次のことが成立する。このような性質を参照透過性という。参照透過な機能はそれ自身状態を持たないことで副作用と独立している。一方状態を持つ機能"codice_2"を考える。codice_2は外側の変数eを増加させて返すものとすれば:のようになるだろう。このような機能では見えない所で条件を変化させてしまうために、参照透過性の一つ目の仮定が崩れ、また他のeを利用する機能の結果も変化させるので二つ目の仮定も成立しない。codice_2は副作用を持つ機能である。副作用を伴う機能の例としては、I/O制御(codice_5/codice_6等)、上記codice_2のように破壊的代入を行う機能などがある。ノイマン型のアーキテクチャは副作用を前提として動作するため、多くのプログラミング言語では変数の破壊的代入機能を持つ。一方関数型言語では原則として副作用を存在しないものとみなし、モナドなどの手法で抽象化している。機能が副作用を持たないことの利点は、いかなる状況でも常に同じ結果が得られるために、機能を純粋に宣言型プログラミングで定義でき、状況依存でのバグの発生が抑えられるということである。反面副作用を持たない言語設計はノイマン型アーキテクチャと反りが合わず、効率の点で不利になることが多い。また単純な逐次処理を行う場合は状態を中心に命令的な思考をした方が扱いやすい場合がある。このためLISPやMLなどは原則として関数型ながら、副作用を許容する設計になっている。

出典:wikipedia

LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。