Составители:
Рубрика:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 99
- 100
- 101
- 102
- 103
- …
- следующая ›
- последняя »
