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

UptoLike

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

101
domains
bird_list = bird_name *
bird_name = symbol
number_list = number *
number = integer
predicates
birds(bird_list)
score(number_list)
clauses
birds(["sparrow",
"robin",
"mockingbird",
"thunderbird",
"bald eagle"]).
score([56,87,63,89,91,62,85]).
/***** конец программы *****/
____________________________________________________________
Эта программа создавалась в расчете на следующие внешние запросы:
birds(All).
birds([_,_,_,B,_]).
birds([B1,B2,_,_,_]).
score(All).
score([F,S,T,_,_,_,_]).
Поясним теперь работу программы при задании каждой из этих це-
лей, это прояснит способ работы со списками в программах на Турбо-
Прологе. Заметим, что свободная переменная All представляет весь
список
в целом. Он рассматривается при этом как некое целое, элементы играют
роль частей этого целого.
Что касается второй цели, birds([_,_,_,B,_]), то процесс сопоставления
начинается с первого элемента. Первые три переменные в целевом утвер-
ждении являются анонимными, при сопоставлении это обстоятельство, одна-
ко, роли не играет. Переменной B присваивается значение thunderbird.
В
этом процессе используется внутренняя связь элементов. В результате удов-
летворения цели появляется строка B=thunderbird.
Третья цель, birds([B1,B2,_,_,_]), запрашивает первые два
элемента списка. На выходе можно будет увидеть B1=sparrow,
B2=robin, т. е. значения первого и второго элементов списка.
Обратимся теперь ко второй части программы, имеющей дело со спи-
ском целых
чисел. В случае со score(All) переменной All присваивается весь
список из 7 элементов, а выдача будет выглядеть так:
All=[56,87,63,89,91,62,85].
domains
    bird_list = bird_name *
    bird_name = symbol
    number_list = number *

number = integer
    predicates
    birds(bird_list)
    score(number_list)

clauses
      birds(["sparrow",
                 "robin",
                 "mockingbird",
                 "thunderbird",
                 "bald eagle"]).

      score([56,87,63,89,91,62,85]).
      /*****             конец программы           *****/
____________________________________________________________
      Эта программа создавалась в расчете на следующие внешние запросы:
            birds(All).
            birds([_,_,_,B,_]).
            birds([B1,B2,_,_,_]).
            score(All).
            score([F,S,T,_,_,_,_]).
      Поясним теперь работу программы при задании каждой из этих це-
лей, это прояснит способ работы со списками в программах на Турбо-
Прологе. Заметим, что свободная переменная All представляет весь список
в целом. Он рассматривается при этом как некое целое, элементы играют
роль частей этого целого.
      Что касается второй цели, birds([_,_,_,B,_]), то процесс сопоставления
начинается с первого элемента. Первые три переменные в целевом утвер-
ждении являются анонимными, при сопоставлении это обстоятельство, одна-
ко, роли не играет. Переменной B присваивается значение thunderbird. В
этом процессе используется внутренняя связь элементов. В результате удов-
летворения цели появляется строка B=thunderbird.
      Третья цель, birds([B1,B2,_,_,_]), запрашивает первые два
      элемента списка. На выходе можно будет увидеть B1=sparrow,
B2=robin, т. е. значения первого и второго элементов списка.
      Обратимся теперь ко второй части программы, имеющей дело со спи-
ском целых чисел. В случае со score(All) переменной All присваивается весь
список из 7 элементов, а выдача будет выглядеть так:
            All=[56,87,63,89,91,62,85].



                                                                         101