Code Review

Compare your solutions

    #| Для этого упражнения нет проверок.
Любое решение будет считаться успешным ответом. |#
Аппликативный порядок: Интерпретатор попытается вычислить аргументы перед вызовом test.
Вычисляем 0 -> 0.
Вычисляем (p) -> ... и уходим в бесконечный цикл. Результат: Зависание.
Нормальный порядок: Интерпретатор подставляет выражения в тело test: (if (= 0 0) 0 (p))
Проверяем условие (= 0 0) -> Истина.
Возвращаем 0. Выражение (p) так и не понадобилось, поэтому оно никогда не вычислялось. Результат: 0.
Итог: Racket использует аппликативный порядок (сначала вычисляет аргументы), потому что это эффективнее (не нужно вычислять одно и то же несколько раз) и проще предсказывать поведение программы.
    #| Для этого упражнения нет проверок.
Любое решение будет считаться успешным ответом. |#
Аппликативный порядок: Интерпретатор попытается вычислить аргументы перед вызовом test.
Вычисляем 0 -> 0.
Вычисляем (p) -> ... и уходим в бесконечный цикл. Результат: Зависание.
Нормальный порядок: Интерпретатор подставляет выражения в тело test: (if (= 0 0) 0 (p))
Проверяем условие (= 0 0) -> Истина.
Возвращаем 0. Выражение (p) так и не понадобилось, поэтому оно никогда не вычислялось. Результат: 0.
Итог: Racket использует аппликативный порядок (сначала вычисляет аргументы), потому что это эффективнее (не нужно вычислять одно и то же несколько раз) и проще предсказывать поведение программы.
    #| Для этого упражнения нет проверок.
Любое решение будет считаться успешным ответом. |#
Аппликативный порядок: Интерпретатор попытается вычислить аргументы перед вызовом test.
Вычисляем 0 -> 0.
Вычисляем (p) -> ... и уходим в бесконечный цикл. Результат: Зависание.
Нормальный порядок: Интерпретатор подставляет выражения в тело test: (if (= 0 0) 0 (p))
Проверяем условие (= 0 0) -> Истина.
Возвращаем 0. Выражение (p) так и не понадобилось, поэтому оно никогда не вычислялось. Результат: 0.
Итог: Racket использует аппликативный порядок (сначала вычисляет аргументы), потому что это эффективнее (не нужно вычислять одно и то же несколько раз) и проще предсказывать поведение программы.
    #| Для этого упражнения нет проверок.
Любое решение будет считаться успешным ответом. |#
Аппликативный порядок: Интерпретатор попытается вычислить аргументы перед вызовом test.
Вычисляем 0 -> 0.
Вычисляем (p) -> ... и уходим в бесконечный цикл. Результат: Зависание.
Нормальный порядок: Интерпретатор подставляет выражения в тело test: (if (= 0 0) 0 (p))
Проверяем условие (= 0 0) -> Истина.
Возвращаем 0. Выражение (p) так и не понадобилось, поэтому оно никогда не вычислялось. Результат: 0.
Итог: Racket использует аппликативный порядок (сначала вычисляет аргументы), потому что это эффективнее (не нужно вычислять одно и то же несколько раз) и проще предсказывать поведение программы.