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

Визначення функцій в Ліспі

Наприклад, після команд (TRACE-FUNCTION APPEND) (APPEND ‘(q w e) (r t y u)) на екрані відобразиться траса (спочатку перший стовпчик, потім — другий):

APPEND [(q w e) (r t y u)]APPEND = (r t y u)

APPEND [(w e) (r t y u)] APPEND = (e r t y u)

APPEND [(e) (r t y u)]APPEND = (w e r t y u)

APPEND [NIL (r t y u)]APPEND = (q w e r t y u)

Розглянемо трасу функції REVERSE з дозволом трасировки функції APPEND для виразу (REVERSE ‘(q w)) (спочатку перший стовпчик, потім — другий):

REVERSE [(q w)]REVERSE = (w)

REVERSE [(w)]APPEND [(w), (q)]

REVERSE [NIL]APPEND [NIL, (q)]

REVERSE = NILAPPEND = (q)

APPEND [NIL, (w)]APPEND = (w q)

APPEND = (w)REVERSE = (w q)

Завдання

I Варіант завдань

1. Написати функцію, яка знаходить:

a) третій елемент четвертого підсписку г) останній атом лінійного спискуб) перший елемент другого підсписку д) останній атом списку з підсписками

в) перший атом списку з підсписками е)перевіряє належність елемента до списку

2. Написати функцію REVERSE, не використовуючи функцій селектора та конструктора. Вказівка: використайте функції PUSH та POP.

3. Написати функцію, яка:

а) з вихідного списку робить множину в) знаходить різницю двох множин

б) об’єднує дві множини г) знаходить перетин двох множин

II Варіант завдань

1. Написати функції:

а) (REVERSE lst), де lst– список з підсписками. Функція повертає обернений на усіх рівнях список lst.

$ (reverse_all '(1 2 3 (q w e (r t) y) 7 9))


Реферати!

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







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

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

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