Реферат: ЛИСП

4. Символы, свойства символов.

Функции присваивания: SET, SETQ, SETF.

Функция SET - присваивает символу или связывает с ним некоторое значение. Причем она вычисляет оба своих аргумента. Установленная связь действительна до конца работы, если этому имени не будет присвоено новое значение функцией SET.


_(SET ‘a ‘(b c d)) р (b c d)

_a р(b c d)

_(SET (CAR a) (CDR (o f g)) р (f g)

_a р (b c d)

_(CAR a) р b

_b р (f g)


Значение символа вычисляется с помощью специальной функции Symbol-value, которая возвращает в качестве значения значение своего аргумента.


_(Symbol-value (CAR a)) р (f g)


Функция SETQ - связывает имя, не вычисляя его. Эта функция отличается от SET тем, что вычисляет только второй аргумент.


_(SETQ d ‘(l m n)) р (l m n)


Функция SETF - обобщенная функция присваивания. SETF используется для занесения значения в ячейку памяти.

( SETF ячейка-памяти значение)


_(SETF ячейка ‘(a b c)) р (a b c)

_ ячейка р (a b c)


Переменная «ячейка» без апострофа указывает на ячейку памяти, куда помещается в качестве значения список (a b c).


Свойства символа.

В Лиспе с символом можно связать именованные свойства. Свойства символа записываются в хранимый вместе с символом список свойств. Свойство имеет имя и значение. Список свойств может быть пуст. Его можно изменять или удалять без ограничений.

(имя1 знач1 имя2 знач2 ... имяN значN )


Пусть имя студент имеет следующий список свойств:

(имя Иван отчество Иванович фамилия Иванов)


Функция GET - возвращает значение свойства, связанного с символом.

(GET символ свойство )


При отсутствии свойства функция GET возвращает NIL в качестве ответа.


_(GET ‘студент ‘имя) р Иван

_(GET ‘студент ‘группа) р NIL


Присваивание и удаление свойств.

К-во Просмотров: 677
Бесплатно скачать Реферат: ЛИСП