История изменений
Исправление tp_for_my_bunghole, (текущая версия) :
До макросов я еще не дошел, поэтому не понимаю что такое «негигиеничный». Но похоже что второй namespace был введен для решения проблемы порожденной гибкостью языка. Хотя все равно странно иметь две переменные с одинаковым именем и при этом в одной из них данные, а в другая - функция.
Нет никаких двух namespaces. Это выдумано для студентов.
В Lisp и Scheme любое имя указывает на структуру symbol в памяти. В Lisp эта структура содержит отдельные поля(указатели) для переменной и функции.
Все symbols часть программы на Lisp как объекты в памяти, не исчезают после компилятора как в других языках.
Исходная версия tp_for_my_bunghole, :
До макросов я еще не дошел, поэтому не понимаю что такое «негигиеничный». Но похоже что второй namespace был введен для решения проблемы порожденной гибкостью языка. Хотя все равно странно иметь две переменные с одинаковым именем и при этом в одной из них данные, а в другая - функция.
Нет никаких двух namespaces. Это выдумано для студентов.
В Lisp и Scheme любое имя указывает на структуру symbol в памяти. В Lisp эта структура содержит отдельные поля(указатели) для переменной и функции.
Все symbols часть программы на Lisp как объекты в памяти, не исчезают после компилятора как в других языках.
Переменные и функции это только то что может содержаться в symbols.