Некоторые основные принципы, лежащие в основе языка программирования Lisp:
- Унификация понятий «функция» и «значение». 1 При символьном представлении информации нет принципиальной разницы в природе изображения значений и функций. 1 Следовательно, нет препятствий для обработки представлений функций теми же средствами, какими обрабатываются значения. 1
- Тождественные формы представления программ и обрабатываемых данных. 23 Они представляют собой списочные структуры. 2
- Реализация списков. 23 С её помощью удаётся миновать управление памятью: сохранение и очищение ячеек в Lisp осуществляется динамически. 2
- Отсутствие строгой типизации. 23 Lisp не имеет структуры строго типизированного языка программирования. 3
- Префиксные нотации. 2 Они предоставляют больше возможностей для синтаксического разбора выражений. 2
- Использование множества скобок. 2 Круглые скобки используются для обозначения списка, в котором может быть что угодно: разнообразные команды, слова, символы, списки в списках, функции и так далее. 2
- Возможность объявления функций где угодно. 2 Из-за данной особенности исходный код программного обеспечения может стать менее читаемым. 2
- Возможность создания собственных правил. 2 Разработчик задаёт правила обработки, а язык самостоятельно разбирается в том, где и как их применить, куда передавать результат, что с ним делать далее. 2