僕の解答
正規順序でも、作用的順序でもremainder演算の回数は変わらず、かな。
; 正規順序 (gcd 206 40) (gcd 40 (remainder 206 40)) ; ↓1回目(ifで評価) (gcd 6 (remainder 40 6)) ; ↓2回目(ifで評価) (gcd 4 (remainder 6 4)) ; ↓3回目(ifで評価) (gcd 2 (remainder 4 2)) ; ↓4回目(ifで評価) 2 ; 作用的順序 (gcd 206 40) (gcd 40 (remainder 206 40)) ; ↓1回目 (gcd 40 6) (gcd 6 (remainder 40 6)) ; ↓2回目 (gcd 6 4) (gcd 4 (remainder 6 4)) ; ↓3回目 (gcd 4 2) (gcd 2 (remainder 4 2)) ; ↓4回目 (gcd 2 0) 2
所感
大間違い…orz。
ifで評価されたんだから、同じ演算は同じ値を使うもんだと思ってた。
とことん遅延するのかぁ…って、同じ演算でもそうするのかなぁ?