Реферат

Реферат Функції властивостей

Работа добавлена на сайт bukvasha.net: 2015-10-28

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 22.11.2024


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

Функції властивостей

Функції властивостей призначені для керування властивостями, пов’язаними із символами. CDR - елемент символа вказує на список властивостей, який містить властивості та прапорці (див. розділ ?????).

Список властивостей - це ASSOC-список (ASSOCiation) ключей властивостей, об’єднаних у пари зі значеннями властивостей (див. Опис ASSOC у розділі 4.1). Оскільки прапорці - це атоми у списку властивостей, вони можуть відрізнятися від властивостей.

Функції властивостей та прапорців полегшують процес побудови динамічних баз даних, з яких інформація може легко та швидко вибиратися.

Розглянемо, як можна працювати зі списком властивостей символа. Його можна по необхідності створювати, обробляти та видаляти. Властивості символа є глобальними, тобто доступними з довільної точки програми, поки вони не будуть явно змінені чи видалені. Використання символа в якості змінної чи імені функції не впливає на список властивостей.

Функції властивостей керують властивостями символів. CDR - елемент символа вказує на список властивостей. Разом з функціями флагів вони полегшують процес побудови динамічних баз даних.

1. (PUT <символ> <ключ> <об’єкт>). У список властивостей <символа> кладеться значення <об’єкта> відповідно до вказівника <ключ>.

(DEFUN PUT (SYM KEY OBJ)

((NULL (ASSOC KEY (CDR SYM)))

(RPLACD SYM (ACONS KEY OBJ (CDR SYM)))

OBJ)

(RPLACD (ASSOC KEY (CDR SYM)) OBJ)

OBJ)

$ (PUT ‘capital ‘usa ‘washington) $ (SETQ capital ‘world)

$ (PUT ‘capital ‘germany ‘bonn) $ (PUT ‘world ‘ocean ‘atlantic)

$ (PUT ‘capital ‘england ‘london)

$ (CDR ‘capital)

((ENGLAND . LONDON) (GERMANY . BONN) (USA . WASHINGTON))

$ (CDR capital)

((ocean . atlantic))

$ (CAR ‘capital) $ capital

world world

2. (GET <символ> <ключ>). Повертає значення властивості, яке відповідає <символу> відповідно до вказівника <ключ>. Якщо такого вказівника не існує, то повертається NIL.

(DEFUN GET (SYM KEY)

((NULL (ASSOC KEY (CDR SYM))) NIL)

(CDR (ASSOC KEY (CDR SYM))) )

Якщо змінна capital має властивості, які їй були надані у попередньому прикладі, то:

$ (GET ‘capital ‘england) $ (GET 'capital 'germany)

london bonn

3. (REMPROP <символ> <ключ>). Видалення зі списка властивостей <символа> властивості, яка відповідає <ключу>. Повертається старе значення властивості, якщо воно знайдено, та NIL – інакше.

(DEFUN REMPROP (SYM KEY)

((ATOM (CDR SYM)) NIL)

((EQUAL (CAADR SYM) KEY)

(SETQ KEY (CDADR SYM))

(RPLACD SYM (CDDR SYM))

KEY )

(REMPROP (CDR SYM) KEY) )

Нехай символ capital має три попередні властивості.

(REMPROP ‘capital ‘germany)

bonn

(REMPROP ‘capital ‘usa)

washington

(CDR ‘capital)

((england . london))

4.2. Функції розпізнання

Функції розпізнання — це твердження, які використовуються для розпізнання або ідентифікації об’єктів даних muLisp. Ці функції мають тільки один аргумент, а повертають булеве значення. Вони розпізнають об’єкт, який може мати довільну структуру. Ми вже розглянули деякі функції розпізнання: SYMBOLP, INTEGERP, NUMBERP, ATOM, LISTP, NULL. Розглянемо інші.

(ZEROP obj). Повертає Т, якщо obj — число 0.

(PLUSP obj). Повертає Т, якщо obj — додатне ціле число.

(MINUSP obj). Повертає Т, якщо obj — від’ємне ціле число.

(ODDP obj). Повертає Т, якщо obj — непарне ціле число.

(EVENP obj). Повертає Т, якщо obj — парне ціле число.

Функція (ASCII sym) повертає ASCII-код символа sym. Функція (ASCII num) повертає символ, ASCII код якого дорівнює числу num. Для того, щоб визначити, чи є символ sym літерою, можна використати функцію:

(< (ASCII ‘a) (ASCII sym) (ASCII ‘z)).

Оскільки muLisp не розрізняє малі та великі літери, то (ASCII ‘s) = (ASCII ‘S) для будь-якого символа s. Функція ISCHAR розпізнає літери. Для знаходження ASCII кодів символів, які позначають цифри, необхідно використовувати одинарний Escape-символ.

$ (DEFUN ISCHAR (char) $ (ASCII ‘f) $ (ASCII 70)

(<= (ASCII ‘a) (ASCII char) (ASCII ‘z)) ) 70 F

$ (ASCII ‘\9) $ (ASCII 57)

57 \9

Наступні функції дають можливість розпізнавати символи та числа.

(ALPHA-CHAR-P <obj>) – повертає T, якщо <obj> – літера.

(NUMERIC-CHAR-P <obj>) – повертає T, якщо <obj> – цифра.

(ALPHANUMERICP <obj>) – повертає T, якщо <obj> – літера або цифра.

$ (ALPHA-CHAR-P W) $ (ALPHA-CHAR-P \3) $ (ALPHA-CHAR-P ~)

T NIL NIL

$ (NUMERIC-CHAR-P W) $ (NUMERIC-CHAR-P \3)

NIL T

$ (NUMERIC-CHAR-P ~) $ (ALPHANUMERICP W)

NIL T

$ (ALPHANUMERICP \3) $ (ALPHANUMERICP ~)

T NIL

Зазначимо, що символ проміжку (‘ ‘ ) є літерою.


1. Курсовая Договор строительного подряда 6
2. Реферат Влияние рекламы на формирование потребительского спроса
3. Реферат на тему Победы русской армии XVIII столетие
4. Доклад на тему Строение Земли Вулканизм и землетрясения Тектоника материков Атмосфера Земли климат и погода
5. Реферат на тему Colonial America Essay Research Paper September 22
6. Реферат на тему Традиционная культура Московского государства
7. Реферат на тему Child Abuse Essay Research Paper Imagine for
8. Реферат на тему Teenage Suicide Essay Research Paper SUICIDESuicide is
9. Реферат Оценка бизнеса 5
10. Реферат на тему Frankenstein Essay Research Paper Robert Waltonthe captain