Мне нужна помощь, чтобы понять некоторые из соображений от Paul Grahams What Made Lisp Разное.
-
Новая концепция переменных. В Lisp все переменные являются фактически указателями. Значения - это то, что имеют типы, а не переменные, а назначающие или связывающие переменные означают указатели на копирование, а не то, на что они указывают.
-
Тип символа. Символы отличаются от строк тем, что вы можете проверить равенство, сравнив указатель.
-
Обозначение для кода с использованием деревьев символов.
-
Весь язык всегда доступен. Не существует реального различия между временем чтения, временем компиляции и временем выполнения. Вы можете компилировать или запускать код во время чтения, чтения или запуска кода во время компиляции, а также читать или компилировать код во время выполнения.
Что означают эти точки? Как они различаются в таких языках, как C или Java? Существуют ли какие-либо другие языки, кроме Lisp семейных языков, какие-либо из этих конструкций?