Я пытаюсь понять, что процедуры и данные практически одинаковы в lisp. SICP говорит, что:процедуры против встроенных данных
- значения цифр являются цифры, которые они называют,
- представлены значения встроенных операторов являются последовательности команд машины, которые выполняют соответствующие операции, и
- представлены значения другими именами являются объекты, связанные с этими именами в среде.
Второе условие гласит, что «значения встроенных операторов - это последовательности машинных команд, которые выполняют соответствующие операции». если я хочу изменить значения, изменив таким образом машинные инструкции, например:
(define + 2)
(* + 3) ;6
все работает нормально.
Теперь первый случай предусматривает, что «значения цифр - это номера, которые они называют». Если я напечатаю
2
Значение представляет собой представление 2, которое выводится. Теперь, если я хочу его изменить, вот так:
(define 2 +) ;bad syntax
Почему это?
Ах да, вы абсолютно правы! У меня процедура и код запутались. – morbidCode