Елена Кореневская

Привет! Читаю книжку, смотрю курс - мучает один вопрос, немного странный. Когда я усвоила define для чисел, но еще не перешла к составным процедурам, я попробовала вычислить степень числа 5

(define x 5) (define square (* x x)) square

25 - все посчиталось

а дальше я написала так (define x 6)- и попросила еще раз square

25 - как ни в чем не бывало, сказал интерпретатор.

Я теперь знаю, что квадрат переменной можно посчитать через define (square x). А мой вопрос - почему не получилось так, как сделала я? Почему, после того, как я задефайнила x 5, и потом вставила его в вычисление, я не смогла просто передефайнить его на 6, и снова запустить свой square? x как-то запоминается в окружении?

0 0

Похожие вопросы

Алексей Данильченко 17 ноября 2019 →

Добрый день! Прошу вас помочь разобраться с аппликативным и нормальным порядком вычисления. Упражнения 1.5 ...

Анатолий Шалобасов 01 марта 2018 →

Здравствуйте. Из-за того что я пока не силен в деревьях, и даже раньше когда проходили функции Кирилл, отсы...

Alexander Grishkevich 01 июля 2016 →

Такой вопрос: если числа (их символьное обозначение цифрами) считаются выражениями, то можно ли теоретическ...

Владимир Тарановский 23 мая 2016 →

У меня DrRacket не позволяет переопределять процедуры. Выдаёт ошибку: module: duplicate definition for iden...

Vadim Podgurskiy 26 апреля 2016 →

Добрый день. Скажите почему не работает этот код: (define (max x y) (if (> x y) (x) y)) (define (square x) ...

Мы учим программированию с нуля до стажировки и работы. Попробуйте наш бесплатный курс «Введение в программирование» или полные программы обучения по Node, PHP, Python и Java.

Хекслет

Подробнее о том, почему наше обучение работает →