Анонімні змінні
Анонімні змінні дозволяють упорядкувати свої програми. Якщо
вас у запиті цікавить тільки певна інформація, то, для ігнорування
непотрібних вам значень, ви можете використовувати анонімні зміни.
ні. У пролозі анонімні змінні відображаються одиночними символами
Наступний приклад демонструє використання анонімних змінних.
Завантажте програму CH03EX04.PRO та скомпілюйте її на згадку.
parent (symbol, symbol)
parent (bill, joe).
parent (joe, tammy).
Анонімна змінна може бути використана замість будь-якої іншої пе-
ремінний. Різниця полягає в тому, що анонімні змінні ніколи не
приймуть будь-яке значення.
Наприклад, у наступному питанні вам потрібно дізнатися які люди є
батьками (parent), але вам не потрібно дізнаватись, хто у них діти. Пролог по-
німає, що кожного разу, коли у запиті ви використовуєте символ підкреслюва-
ня, вам не потрібно знати значення, що присвоюється змінною на даному
Goal: parent (Parent,_).
Отримавши такий запит, Пролог відповість:
У цьому випадку (через анонімні змінні) Пролог знайде і видасть
трьох батьків, але він не видаватиме значень, асоційованих зі
Другим аргументом пропозиції parent.
Крім цього, анонімні змінні можуть бути використані у фактах.
Наступні факти Прологу
можуть бути використані в наступних реченнях природної мови:
У кожного є (owns) черевики (shoess).
Анонімні змінні зіставляються із чим завгодно. У більшості слу-
чаїв пройменовані змінні зможуть працювати абсолютно рівнозначно, од-
напевно, їх значення не будуть служити будь-якій кориснійцілі.
Цілі (запити)
Досі, під час розмови про ваші питання до Прологу ми використовували
слово "запити". Відтепер, при посиланні на них, ми будемо використовувати бо-
загальний термін: "мета". Це має бути зручніше, адже коли ви
Запитуєте Пролог, ви насправді встановлюєте перед ним
Мета: "Знайти відповідь на таке питання (якщо він є):".
Цілі можуть бути простими, як такі дві:
likes (ellen, swimming).
likes (bill, What).
або трохи складнішими. У розділі цього розділу "Змінні" ви бачили
ціль, що складається з двох частин:
likes (Person, reading) і likes (Person, swimming).
Ціль, що складається з двох і більше частин, називається складовою метою,
а кожна частина такої мети називається підціллю. (Зауваження: у правилах
Прологу кожна умова також називається підціллю.)
Часто вам потрібно визначити перетин двох цілей. Наприклад, у пре-
дидячому прикладі ви могли захотіти дізнатися, хто з людей є батька-
мі-чоловіками. Ви можете вказати Прологу знайти рішення цього запиту з по-
силою завдання складової мети. Завантажте програму CH03EX04.PRO та натисніть
(Для її запуску) AltR. На запрошення "Goal:" введіть наступну складову
Goal: parent(Person,_) and male(Person).
Пролог спробує спочатку вирішити підціль
переглядаючи при цьому для зіставлення пропозиції, а потім пов'язуючи пе-
ременную Person зі значенням, що повертається пропозиціями parent. Значить-
ня, повернене parent, буде тепер використано як значення
для вирішення другої підцілі (чи є Person (вже пов'язана) чоловік-
Якщо ви ввели мету коректно, Пролог відповість