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

Привет! Читаю книжку, смотрю курс - мучает один вопрос, немного странный. Когда я усвоила 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

Есть вопрос или хотите участвовать в обсуждении?

Зарегистрируйтесь или войдите в свой аккаунт

Нажимая кнопку «Зарегистрироваться», вы даёте своё согласие на обработку персональных данных в соответствии с «Политикой конфиденциальности» и соглашаетесь с «Условиями оказания услуг».

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

Vshil 05 июля 2020 →

Почему вы выбрали этот язык?

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

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

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

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

Alexander Grishkevich 01 июля 2016 →

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

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

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