TURBO PROLOG. Терёхин В.В. - 53 стр.

UptoLike

Составители: 

53
blond_hair(frank).
new_car(bill).
new_car(willy).
new_car(frank).
old_car(mark).
old_car(tom).
sports_car(jim).
sports_car(robert).
/* правила */
who_is_the_choice :-
kathy_choice(Choice),
write("Kathy's choice is ",Choice,"."),
nl.
kathy_choice(Choice) :-
choice(Choice),
tall_height(Choice),
blond_hair(Choice),
sports_car(Choice).
/***** конец программы *****/
_____________________________________________________________
В разделе clauses 7 утверждений предиката choice содержат имена
bill, jim, mark, robert, willy, tom и
frank. Утверждения с предикатами
short_hair, medium_height, tall_height, black_hair, brown_hair, blond_hair,
new_car, old_car и sports_car также содержат эти мужские имена. Целью
программы является отыскание мужчины, соответствующего вкусам некой
kathy: высокого роста, блондина, обладателя спортивного автомобиля.
В случае обнаружения мужчины, обладающего перечисленными
свойствами, программа должна напечатать его имя. Правилом для поиска
служит
kathy_choice(Choice) :-
choice(Choice),
tall_height(Choice),
blond_hair(Choice),
sports_car(Choice).
Назначение правила заключается в
том, чтобы найти среди утвержде-
ний choice хотя один объект, который одновременно является объектом
еще трех атрибутных утверждений: tall_height, blond_hair, sports_car.
Вначале данное правило присваивает переменной Сhoice значение
одного из объектов утверждения choice. Как Вы можете вспомнить из обсу-
ждения утверждений likes, Турбо-Пролог просматривает утверждения с
нужным предикатом, начиная с
первого; следовательно, при первой попыт-
ке переменная Choice примет значение bill. Затем правило попытается найти
соответствие этого значения одному из объектов утверждений первого из
           blond_hair(frank).
           new_car(bill).
           new_car(willy).
           new_car(frank).
           old_car(mark).
           old_car(tom).
           sports_car(jim).
           sports_car(robert).
           /* правила */

          who_is_the_choice :-
                          kathy_choice(Choice),
                          write("Kathy's choice is ",Choice,"."),
                          nl.
          kathy_choice(Choice) :-
                          choice(Choice),
                          tall_height(Choice),
                          blond_hair(Choice),
                          sports_car(Choice).
/*****      конец программы           *****/
_____________________________________________________________

        В разделе clauses 7 утверждений предиката choice содержат имена
bill, jim, mark, robert, willy, tom и frank. Утверждения с предикатами
short_hair, medium_height, tall_height, black_hair, brown_hair, blond_hair,
new_car, old_car и sports_car также содержат эти мужские имена. Целью
программы является отыскание мужчины, соответствующего вкусам некой
kathy: высокого роста, блондина, обладателя спортивного автомобиля.
        В случае обнаружения мужчины, обладающего перечисленными
свойствами, программа должна напечатать его имя. Правилом для поиска
служит
              kathy_choice(Choice) :-
                                  choice(Choice),
                                  tall_height(Choice),
                                  blond_hair(Choice),
                                  sports_car(Choice).
        Назначение правила заключается в том, чтобы найти среди утвержде-
ний choice хотя один объект, который одновременно является объектом
еще трех атрибутных утверждений: tall_height, blond_hair, sports_car.
        Вначале данное правило присваивает переменной Сhoice значение
одного из объектов утверждения choice. Как Вы можете вспомнить из обсу-
ждения утверждений likes, Турбо-Пролог просматривает утверждения с
нужным предикатом, начиная с первого; следовательно, при первой попыт-
ке переменная Choice примет значение bill. Затем правило попытается найти
соответствие этого значения одному из объектов утверждений первого из


                                                                         53