Зворотний зв'язок

Мова програмування Лiсп

$ (EQL 'qw 'qw)$ (EQL (CAR '(q w)) q)$ (EQL (CAR '(q,w) NIL)

TTF

При написаннi програм на Лiспi часто виникає запитання: чи є даний об'єкт атомом? Це питання вирiшує предикат ATOM. Вiн повертає Т, якщо об'єкт є атомом i NIL в iншому випадку. Порожнiй список NIL є атомом.

$ (ATOM qwerty)$ (ATOM '(q w e))$ (ATOM '())

TFT

$ (ATOM '(q))$ (ATOM 3)

FT

Функцiї призначення

Функцiї призначення застосовуються для надання значень програмним змiнним. До них вiдносяться:

1. (SET symbol object)- замiна символа об'єктом

2. (SETQ sym1 form1 sym2 form2 ... )- спецiальна форма функцiї SET

3. (PSETQ sym1 form1 sym2 form2 ... )- спецiальна форма функцiї SET

4. (POP symbol)- повертає вершину стека (списку)

5. (PUSH symbol form)- кладе символ symbol в стек (список) form.

Операцiя замiни значення символа здiйснюється за допомогою функцiї SET. Вона присвоює символу symbol значення object, або зв'язує symbol з object. Для скорочення замiсть SET ' пишуть SETQ (SET Quote). Як результат функцiя присвоєння повертає другий аргумент.

$ (SET 'fox '(a s d))$ (SETQ vowels '(a e i o u)))

$ (SETQ fox '(a s d))$ (SETQ vowels (CONS 'y vowels))

(a s d)(y a e i o u)

Функцiя SETQ дозволяє здiйснювати замiну значень декiльком символам в однiй командi: (SETQ a 1 b 2 c 3). При цьому змiни виконуються послiдовно злiва направо. Пiсля цього значенням символу a стане 1, b - 2, c - 3.

Функцiя PSETQ iдентична до функцiї SETQ за винятком того, що всi форми оцiнюються до того, як будуть здiйсненi будь-якi замiни. Проiлюструємо це на прикладi. Значення символа Sym позначатимемо через Val(Sym).

$ (SETQ w 1 e 2) Val(w)=1, Val(e)=2$ (SETQ w 1 e 2) Val(w)=1, Val(e)=2

$ (SETQ w e e w) Val(w)=2, Val(e)=2$ (PSETQ w e e w) Val(w)=2, Val(e)=1

При виконаннi операцiї замiни необхiдно розрiзняти символ та значення. При стартi системи mulLsp значенням кожного символа є вiн сам. Якщо ми введемо DOG, то i результатом буде DOG. Присвоїмо символовi DOG значення CAT: (SET 'DOG 'CAT). Результатом виразу (SET DOG 'HEN) буде HEN, але значення HEN ми присвоювали не символу DOG, а значенню символа DOG, тобто символу CAT. Значення символа DOG залишилося без змiни. Розглянемо результат наступних дiй:


Реферати!

У нас ви зможете знайти і ознайомитися з рефератами на будь-яку тему.







Не знайшли потрібний реферат ?

Замовте написання реферату на потрібну Вам тему

Замовити реферат