sicp.io
1.1.3 · Именование метода

Процедура как имя процесса

Постройте полезную операцию из более простых и наблюдайте, как имена становятся параметрами при применении процедуры.

Вопрос для размышления

Как определение процедуры превращает выражение в повторно используемый метод?

  • Чтение определения процедуры как параметров и тела
  • Отслеживание одного применения составной процедуры
  • Различение имени и связанного с ним значения

Имя square называет процедуру с одним параметром. Затем sum-of-squares объединяет два применения square. Определение фиксирует метод. Ничто в его теле не выполняется до тех пор, пока процедура не будет применена.

При применении каждый параметр связывается со значением аргумента в новом окружении. Тело вычисляется с этими связываниями, давая 25 для входных значений 3 и 4.

Код SICP122 из 1,048,576 байт UTF-8
Примеры
Результат
Вывод
Значение
Диагностика
Трасса выполнения0 / 0 событий
    Запуски происходят внутри браузера с отображением результата программы и трассы выполнения.
    Ожидаемый результат

    Первая программа возвращает 25 и не производит вывода.

    На что обратить внимание в трассе

    Найдите два применения square. Они используют разные связывания x, хотя оба вызова вычисляют одно и то же тело процедуры.

    Попробуйте сами

    Измените программу и сравните результат.

    Определите sum-of-cubes с помощью процедуры cube, затем вычислите ее для 2 и 3.

    Показать подсказку

    Держите объединяющую процедуру независимой от деталей возведения одного значения в куб.

    Завершить этот урок

    В этой главе пройдено 0 из 18 уроков0%