/  
 ДОКУМЕНТІВ 
20298
    КАТЕГОРІЙ 
30
Про проект  Рекламодавцям  Зворотній зв`язок  Контакт 

Функції конструктора, Детальна інформація

Тема: Функції конструктора
Тип документу: Реферат
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 0
Скачувань: 570
Скачати "Реферат на тему Функції конструктора"
Сторінки 1   2   3   4   5  
Реферат на тему:

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

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)

Сторінки 1   2   3   4   5  
Коментарі до даного документу
Додати коментар