Работата е един прост пример с помощта на "прекъсването и връщане назад" и "намаление на цените след провала" за организиране на Prolog цикли:
% Този пример показва как да получите най-различни възможни решения.
% Използваните методи: натиск след недостатъчност (ARF) и подрязване и натиск (GS)
% Целта на задачата: да получите различни списъци на децата
предикати
nondeterm дете (символ, символ)
all_childs
all_childs_Alisa
all_childs_before_Diana
first_child_Alisa
клаузи
База% от децата
дете ( "Тимур", "коза").
дете ( "Алиса", "Попова").
дете ( "Джак", "Кузнецов").
дете ( "Олга", "Фролов").
дете ( "Алиса", "Shapochkina").
дете ( "Петър", "Иванов").
дете ( "Алиса", "Рубльов").
% Списък на всички деца - метод на намаление на цените след провала (ОБН)
all_childs: - дете (X, Y), пише (X "," Y), NL, се провалят.
Списък% от всички деца с име Алис - метод намаление на цените след провала (ОБН)
all_childs_Alisa: - дете (X, Y), X = "Алис", пишат (X, Y), NL, се провалят.
% Списък на всички деца до и включително Диана - клипинг и намаление на цените Метод (OO)
all_childs_before_Diana: - дете (X, Y), пише (X, Y), NL, X = "Диана".
% Първо дете на име Алис - стреляйки метод и намаление на цените (GS)
first_child_Alisa: - дете (X, Y), X = "Алис", пишат (X, Y), NL.
гол
% Write ( "списък на всички деца:"), NL, all_childs.
% Write ( "Списъкът на деца с име Алиса:"), NL, all_childs_Alisa.
% Write ( "Списък на всички деца до и включително Диана"), NL, all_childs_before_Diana.
пиша ( "Първото дете на име Алиса:"), NL, first_child_Alisa.
Удивителният знак в пролога (т.нар оператор прекъсването), ако обяснете на пръстите на ръцете, работи по следния начин: Ако е имало представяне на отбора, дори и ако причинени от предишните правила са и други решения за разглеждане - намаление на цените от това правило все още няма да е "!" направен. Забранено ни е да се връщам и да намерят други решения.
Повече (A 3): - А<3.
Повече (A 5): - А<5.
Повече (А 8): - А<8.
Гол-голям (4 дни).
Ще дам отговора: Броят = 5.
Въпреки, че имаше две възможни отговори: 4 и 8. Но ние не сме достигнали последните правила за инспекция, тъй като в регулация "Повече (A 5): - А<5. " запретил нам откатываться к предыдущим правилам своим восклицательным знаком, на который Пролог наткнулись, когда нашёл решение "число=5".
Самият заплете в това, което е написано, но е ясно, и е трудно да се обясни най-бързо))