18/10/24 08:47:38.46 XKgg3tJUa.net
()は決して先に計算するという意味ではなく、結合の優先順位を変えるんだよ
a = (b + c) + f(x) は、=, +についてもそれぞれを引数2つの関数とみると
=(a, +(+(b, c), f(x))
というツリー構造になる
これをどういう順序で評価するかはいくつかやり方があるが、
Javaや糞Ruby糞を含む多くの言語では正格評価と呼ばれる方式が採用されており、これは外側の関数から内側の順に式を評価する
引数リスト中での評価順序は言語によって様々だが、Javaの場合は原則的に左から右の順に評価する