LINUX.ORG.RU

История изменений

Исправление 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.