Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Book(title,author)




другий аргумент функтору book є author. Але старий опис

author = symbol

може тільки включати просте ім'я, тому його не можна застосовувати.

Ми повинні зараз специфікувати, що author є складним об'єктом, який включає ім'я та прізвище:

Author(first_name,last_name)

Котре вимагає наступний опис:

Domains

articles = book(title, author);

Horse(name);

Boat;

Bankbook(balance)

author = author(first_name,last_name)

title, author, name = symbol

balance = real

 

Коли використовуються складні об'єкти різного рівня, їх зручно зображати у вигляді дерева.

 

 

Book

/ \

Title author

/ \

/ \

Firstname lastname

 

Речення домену описує тільки один рівень дерева, а не все дерево. Наприклад, книга з нашого прикладу не може бути описана наступним чином.

book=book(title,author(firstname,lastname))

 

5.6.Приклад, який ілюструє задання структури речення англійської мови.

Розглянемо приклад задання граматичної структури речення, використовуючи складний об'єкт. Найбільш просте речення має підмет і присудкову частину:

 

sentence = sentence(noun,verbphrase)

Де підмет є простим словом:

noun=noun(word),

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

verbphase=verbphrase(verb,noun);

Verb(word)

verb = verb(word)

Використовуючи такий опис, речення 'Еllen owns the book.' може бути представлене

Sentence(noun(ellen),verbphrase(verb(owns),noun(book)))

Відповідне дерево прийме вигляд

 

Sentence

/ \

/ \

Noun verbphrase

/ / \

/ verb noun

| | |

Ellen owns the book

 

Подібний підхід може бути використаний при написанні блоку синтаксичного аналізу компілятора.

5.7.Опис змішаних складних об'єктів.

В цьому розділі ми розглянемо три різні типи опису доменів, які ви можете використовувати у ваших програмах. Ці описи дозволяють вам використовувати предикати, які:

мають аргумент, який може бути різного типу;

мають змінну кількість аргументів, кожний з яких окремого типу;

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

 

5.7.1.Аргументи, які можуть мати різний тип.

Для того, щоб дозволити предикату допустити аргументи різного типу, ви повинні додати опис функтору. Наприклад, в наступному прикладі фраза your_age, буде допускати аргумент типу age, який може бути стрічковим, цілим, дійсним.

Predicates

Your_age(age)

Clauses

your_age(i(AGE)):-write(AGE)

your_age(r(AGE)):-write(AGE)

your_age(s(AGE)):-write(AGE)

тоді домен повинен бути наступним:

domains age = i(integer);

R(real);

S(string)

Predicates your_age(age)

 

Поряд з тим Пролог не дозволяє наступні описи доменів:

Domain

age = integer, real, string

 





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 341 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Неосмысленная жизнь не стоит того, чтобы жить. © Сократ
==> читать все изречения...

2285 - | 1991 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.