Лисп/Типы данных: различия между версиями

Содержимое удалено Содержимое добавлено
м Откат правок 5.228.6.87 (обс.) к версии Kostochkin
Нет описания правки
Строка 4:
Сначала же Лисп оперировал только символами и списками (отсюда и название — <u>Lis</u>t <u>p</u>rocessor).
 
'''Символ — это имя''', состоящее из букв, цифр и[ли] специальных знаков <code>{ [ < ! ? . - @ # $ % ^ & * _ + / > ] }</code>. Символ обозначает произвольный объект или явление из прикладной области, вспомогательные объекты внутри программы, или некоторую структуру исходного кода. Имя функции — это тоже символ. Символ всегда имеет значение (утверждение явно не верно, см. intern).
(setq x "value-of-x") => "value-of-x" ; присвоение символу значения
>> (symbol-value 'x) => value-of-x ; вывод значения символа
Строка 18:
 
Вы всегда можете проверить, является ли некий объект символом (предикат symbolp) и узнать его имя (функция symbol-name) или значение (symbol-value). Вы уже могли догадаться об этом, если видели чуть выше маленький клочок кода :-)
Более общим понятием является '''атом'''. атомы &equiv; символы ⋃ числа.
 
'''Список''' - структура, состоящая из элементов, которыми могут быть атомы или другие списки.