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

Всього в базі: 75838
останнє поновлення: 2016-12-03
за 7 днів додано 10

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

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

 

ПОШУК:   

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

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

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

 

Функції конструктора

 

muLISP-програми можуть автоматично генерувати нові структури даних,

використовуючи функції конструктора. Ці функції можуть утворювати

бінарні дерева або зв’язні списки, які моделюють структури даних

практично для довільної задачі.

 

1. (CONS object list). Ця функція конструктора є примітивною функцією та

була розглянута раніше у параграфі 2.2.

 

2. (ACONS key object alist). Утворює пару (ключ . обьект), розташовує

її на початку асоциативного списку alist та повертає результуючий

асоциативний список. ACONS спрощує процес утворення асоциативних

списків.

 

(DEFUN ACONS (KEY OBJ ALIST)

 

(CONS (CONS KEY OBJ) ALIST) )

 

$ (ACONS 'EYES 'BLUE '((WEIGTH . 170) (HEIGTH . 72)))

 

((EYES . BLUE) (WEIGTH . 170) (HEIGTH . 72))

 

3. (LIST object1 object2 ... objectn). Утворює та видає список, який

складається з елементів від об’єкта object1 по об’єкт objectn. Якщо

функція викликана без аргументів, то LIST повертає ознаку NIL. LIST може

працювати з будь-якою кількістю аргументів.

 

(DEFUN LIST LST

 

((NULL LST) NIL)

 

(CONS (CAR LST) (APPLY 'LIST (CDR LST))) )

 

$ (LIST 'A 'B 'C 'D) $ (LIST 'A '(B C) 'D)

 

(A B C D) (A (B C) D)

 

$ (LIST)

 

NIL

 

4. (LIST* object1 object2 ... objectn). Пов’язує у пару об’єкти object1,

object2, ... та objectn і видає результуючий об’єкт. Якщо функція

викликається з єдиним аргументом, LIST* повертає цей аргумент.

 

(DEFUN LIST* LST

 

((NULL LST) NIL)

 

((NULL (CDR LST))

 

(CAR LST) )

 

(CONS (CAR LST) (APPLY 'LIST* (CDR LST))) )

 

$ (LIST* 'A 'B 'C 'D) $ (LIST* 'A 'B '(C D))

 

(A B C . D) (A B C D)

 

$ (LIST* 'DOG)

 

DOG

 

5. (APPEND list1 list2 ... listn). Утворює та повертає список, який

складається з елементів списків, починаючи зі списку list1 та по список

listn. APPEND копіює cons-и верхнього рівня кожного зі своїх

аргументів, окрім останнього. Якщо функція викликається з єдиним

аргументом, APPEND повертає цей аргумент без його копіювання. Отже, для

копіювання списку краще використовувати COPY-LIST, ніж APPEND.

 

Відмітимо, що якщо APPEND та NCONC, о якій буде сказано далі, мають

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

APPEND використовує cons-и для копіювання усіх, окрім останнього,

аргументів, тоді як NCONC фактично модифікує усі аргументи, окрім

останнього.

 

(DEFUN APPEND (LST1 LST2)

 

((ATOM LST1) LST2)

 

(CONS (CAR LST1) (APPEND (CDR LST1) LST2)) )

 

$ (SETQ FOO '(D E F))

 

(D E F)

 

$ (APPEND '(A B C) FOO '(G H I)) $ (APPEND '(I U) 'T 'R 'E '(O I))

 

(A B C D E F G H I) (I U O I)

 

Копіює cons-и верхнього рівня списку list та повертає список,

еквівалентний (тобто рівний – EQUAL) списку list.

 

(DEFUN COPY-LIST (LST)

 

((ATOM LST) LST)

 

(CONS (CAR LST) (COPY-LIST (CDR LST))) )

 

$ (COPY-LIST '(A B (C . D) E)) $ (COPY-LIST '(A B C . D))

 

(A B (C . D) E) (A B C . D)

 

7. (COPY-TREE object). Копіює cons-и верхнього рівня об‘єкту object та

повертає об‘єкт, еквівалентний object.

 

(DEFUN COPY-TREE (OBJ)

 

((ATOM OBJ) OBJ)

 

(CONS (COPY-TREE (CAR OBJ)) (COPY-TREE (CDR OBJ))) )

-----> Page:

0 [1] [2]

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