UkrReferat.com
найбільша колекція україномовних рефератів

Всього в базі: 75855
останнє поновлення: 2016-12-09
за 7 днів додано 17

Реферати на українській
Реферати на російській
Українські підручники

$ Робота на замовлення
Реклама на сайті
Зворотній зв'язок

 

ПОШУК:   

реферати, курсові, дипломні:

Українські рефератиРусские рефератыКниги
НазваФункції модифікатора (реферат)
Авторdimich
РозділІнформатика, компютерні науки
ФорматWord Doc
Тип документуРеферат
Продивилось1531
Скачало318
Опис
ЗАКАЧКА
Замовити оригінальну роботу

Реферат на тему:

 

Функції модифікатора

 

Функції модифікатора виконують переадресацію вказівників в структурах

даних мови програмування Лісп.

 

1. RPLACA <об’єкт1> <об’єкт2>.

 

Відбувається заміна CAR-елемента об’єкта1 вказівником на об’єкт2,

повертається модифікований об’єкт.

 

Якщо об’єкт1 — список, то перший елемент списка замінюється на об’єкт2.

 

Якщо об’єкт1 — бінарне дерево, то його лівий син замінюється на об’єкт2.

 

 

Якщо об’єкт1 — символ (aле не NIL), то символ приймає значення об’єкт2.

 

$ (SETQ a ‘(a b c d)) $ (SETQ b ‘((1 . 2) . (3 . 4))) $ (SETQ s ‘d)

 

$ (RPLACA a ‘(11 12)) $ (RPLACA b 5) $ (RPLACA s ‘g)

 

((11 12) b c d) (5 . (3 . 4)) Val(s)=d,Val(d) = g

 

2. RPLACD <об’єкт1> <об’єкт2>. Відбувається заміна CDR-елемента об’єкта1

вказівником на об’єкт2, повертається модифікований об’єкт. RPLACA та

RPLACD є основними функціями, які змінюють фізичну структуру списків. Їх

можна представити через узагальнену функцію присвоєння SETF:

 

(RPLACA x y) – це (SETF (CAR x) y)

 

(RPLACD x y) – це (SETF (CDR x) y)

 

3. NSUBSTITUTE <новий><старий> <список> <тест>. Модифікуються конси

найвищого рівня списку. Старі елементи замінюються на нові на нульовому

рівні вкладеності, для яких перевірка по тесту не дорівнює NIL. Якщо

тест не вказано, то по замовченню тест = EQL.

 

$ (NSUBSTITUTE 1 3 ‘(4 5 6 (3 3 4 5) 3 4 1))

 

(4 5 6 (3 3 4 5) 1 4 1)

 

$ (NSUBSTITUTE 10 5 ‘(4 5 6 3 4 1) >)

 

(10 5 6 10 10 10)

 

$ (NSUBSTITUTE 10 5 ‘(4 5 6 3 4 1) <)

 

(4 5 10 3 4 1)

 

4. NSUBST <новий><старий> <список> <тест>. Функція працює як і

NSUBSTITUTE, але модифікуються конси всіх рівнів списку.

 

$ (NSUBST 1 3 ‘(4 5 6 (3 3 4 5) 3 4 1))

 

(4 5 6 (1 1 4 5) 1 4 1)

 

5. DELETE <елемент> <список> <тест>. Вилучає зі списку всі елементи, для

яких ознака перевірки за тестом не дорівнює NIL.

 

$ (DELETE 3 ‘(1 2 3 4 3 2 1))

 

(1 2 4 2 1)

 

6. NREVERSE <список> <об’єкт>. Обертає елементи списку, зчеплених з

об’єктом.

 

$ (NREVERSE ‘(a b c d)) $ (NREVERSE ‘(1 2 3 (1 2 3) 4 5 6) ‘(1 2 3))

 

(d c b a) (6 5 4 (1 2 3) 3 2 1 1 2 3)

 

7. NBUTLAST <список> . Якщо n — нуль або додатне ціле, то функція

NBUTLAST повертає список без n останніх елементів (відбувається заміна

n-го конса, взятого з кінця списку на NIL). Якщо другий аргумент не

вказано, то за замовченням n=1.

 

$ (NBUTLAST ‘(a b c d e)) $ (NBUTLAST ‘(a b c d e) 3)

 

(a b c d) (a b)

 

8. NCONC <список1> <список2> ... <списокN>. Повертається список, який

складається з елементів списків — аргументів у вказаному порядку.

Відбувається модифікація останніх CDR-елементів списків. Якщо виконати

команду (NCONC list list), де list — будь-який список, то результатом

буде циркулянтний список, процес побудови якого буде нескінченним.

 

$ (NCONC ‘(1 2) ‘(3 4) ‘(5 6 7))

 

(1 2 3 4 5 6 7)

 

9. SPLIT <список>. Розбиває список на два списки посередині. Значенням

списку стає його перша половина. Функція SPLIT повертає другу половину

списку.

 

$ (SETQ a ‘(1 2 3 4 5 6)) $ a

 

$ (SPLIT a) (1 2 3)

 

(4 5 6)

 

10. SORT <список> <тест>. Сортуються елементи списку на основі тесту.

-----> Page:

0 [1] [2]

ЗАМОВИТИ ОРИГІНАЛЬНУ РОБОТУ