сувати всі імена російськими літерами, щоб зробити сенс програм найбільш зрозумілим. При запуску цих програм в В«англо-мовнихВ» системах програмування потрібно замінювати російські літери в іменах на латинські.
Типи даних включають змінні, атомарні значення та структури (рис. 3.15).
В
Рис.3.1 5. Класифікація типів даних Прологу
Приклади спеціальних атомів :
: - ( позначає імплікації),
? (Питання, що позначає заперечення),
! (Предикат відсікання, розглядається далі). p align="justify"> Змінні позначаються послідовністю буквою і цифр, що починається з великої літери. Особливий вид змінної - анонімна мінлива _, яка у ролі аргументу предиката, коли конкретне значення змінної неістотно. p>
Структура - це конструкція, що складається з імені структури та укладеного в дужки списку її аргументів, розділених комами. Елементами структур можуть бути числа, атоми, змінні, інші структури і списки. Приклади структур: str (A, B, C), носить (юрий, піджак).
Списки представляють собою об'єднання елементів довільних видів, розділених комами і ув'язнених в квадратні дужки. Списки відрізняються від структур тим, що кількість елементів може змінюватися при виконанні програми. Приклади списків: [1,3,5,7], [червоний, жовтий, зелений].
Основна операція, виконувана в мові Пролог, - це операція зіставлення (звана також уніфікацією чи погодженням). Операція зіставлення може бути успішною, а може закінчитися невдало. Визначається операція зіставлення так:
константа зіставляється тільки з рівної їй константою;
ідентичні структури зіставляються один з одним;
мінлива зіставляється з константою або з раніше пов'язаної змінної (і стає пов'язаної з відповідним значенням);
дві вільні змінні можуть зіставлятися (і зв'язуватися) один з одним. З моменту зв'язування вони трактуються як одна змінна: якщо одна з них бере яке-небудь значення, то друга негайно приймає те ж значення.
Приклади: 5 зіставляється з 5, В«маєВ» зіставляється з В«маєВ», В«сергей" не зіставляється з В«юрійВ», В« має (сергей, машина) "не зіставляється зВ« має (сергей, телевізор) В»,В« має (сергей, машина) В»зіставляється зВ« має (Х, машина) В», в цьому випадку змінна Х отримує в якості значення атом В«сергейВ».
Факти - це предикати з аргументами-константами, що позначають відносини між об'єктами або властивості об'єктів, іменовані цими константами . Факти в програмі вважаються завжди і безумовно істинними і таким чином служать основою докази, що відбувається при виконанні програми.
Приклад 1. Факти, що описують телефонні номери:
телефон (иванов, т561532).
телефон (петрів, т642645).
телефон (сидоров, т139833).
Це означає: телефон Іванова - 56-15-32 і т.п. Зауважимо, що перед цифрами номера йде буква'' т ". Вона робить номер телефону литерной константою, так як числа +561532,642645, 139833 занадто великі, щоб бути числовими константами. p align="justify"> Приклад 2, Факти, що описують студентів:
подобається (сергей, реп).
подобається (юрий, джаз).
носить (сергей, блейзер).
носить (юрий, піджак).
Це означає: В«Сергію подобається репВ», В«Юрію подобається джазВ» і т.п.
Правила - це хорновскіе фрази із заголовком і однією або декількома підцілі-предикатами. Правила мають форму
<голова правила>: - <список підцілей>
де знак: - читається В«якщоВ», а список підцілей складається з окремих підцілей, розділених знаком В«комаВ» (читаним як В«іВ»). Правила дозволяють визначити нові відносини між об'єктами на основі вже оголошених за допомогою фактів. В якості аргументів в предиката правила можуть використо...