ねねっちと一緒にプログラムを勉強するスレ [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0552ふつけら ◆f5STnaEXUk
2017/02/23(木) 18:48:54.56ID:+rmKD8dw少し難しい話をする
答えをほぼ書くことになってしまうけど
f1(x) = x + 1
f2(y) = y - 2
f1(f2(2)+1)の計算を
f1((2 - 2) + 1) (f2を計算)
f1(1)
1 + 1 (f1を計算)
と計算してもいいし
f1(f2(2)+1)の計算を
(f2(2)+1) + 1 (f1を計算)
f2(2)+2
(2 - 2) + 2 (f2を計算)
と計算してもいい(数学では)
どこから計算しても結果が同じになる合流性という性質があるから
ただしCの関数としては必ず引数から評価されるので
C/C++では必ず引数のf2(2)のほうから計算される
でもこの合流性は数学的な関数について成り立つのであって
Cの関数に副作用があると成り立たなくなる(計算順序で結果がかわる)
つまり副作用があるとバグりやすくなる
■ このスレッドは過去ログ倉庫に格納されています