Код Ревью
Сравни свои решения
#| Для этого упражнения нет проверок.
Любое решение будет считаться успешным ответом. |#
(define (gcd a b)
(if (= b 0)
a
(gcd b (remainder a b))))
; Нормальный порядок вычислений
(gcd 206 40)
(gcd 40 (remainder 206 40))
(gcd (remainder 206 40) (remainder 40 (remainder 206 40))) ; в (= b 0) 1 раз вычисляется remainder
(gcd (remainder 40 (remainder 206 40)) (remainder (remainder 206 40) (remainder 40 (remainder 206 40)))) ; в (= b 0) 2 раза вычисляется remainder
(gcd (remainder (remainder 206 40) (remainder 40 (remainder 206 40))) (remainder (remainder 40 (remainder 206 40)) (remainder (remainder 206 40) (remainder 40 (remainder 206 40))))) ; в (= b 0) 4 раза вычисляется remainder
; Итого 11 + 7 = 18 вызовов remainder
; Аппликативный порядок вычислений
(gcd 206 40)
(gcd 40 6) ; 1 вызов remainder
(gcd 6 4) ; 2 вызов remainder
(gcd 4 2) ; 3 вызов remainder
(gcd 2 0) ; 4 вызов remainder
; Итого 4 вызова remainder