Программирование на Турбо-Прологе - стр. 6
2.1. путей между произвольной парой вершин;
2.2. многоугольников с заданным числом сторон ( например, четырехугольников).
3.Отношения likes ("нравится") и can_buy ("может купить").
Описать указанные отношения для следующих комбинаций "субъекты - предметы":
3.1.субъекты - фрукты;
3.2.субъекты - марки автомобилей;
3.3.субъекты - фильмы;
3.4.субъекты - книги.
2. ОПЕРАЦИИ НАД СПИСКАМИ И АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ
2.1.Представление списков
Список - последовательность из произвольного числа элементов. Список является основной структурой данных в Прологе. Элементы списка разделяются запятыми и заключаются в квадратные скобки. Любой список представляет собой:
- либо пустой список (атом []);
- либо непустой список - структуру, состоящую из двух частей:
- первый элемент - голова (Head) списка;
- второй элемент - хвост (Tail) списка.
В общем случае голова списка может быть любым объектом языка Пролог, а хвост - обязательно должен быть списком. Поскольку хвост - список, то он либо пуст, либо имеет свои собственные голову и хвост.
Для повышения наглядности программ в Прологе предусматриваются специальные средства для списковой нотации, позволяющие представлять списки в виде
[ Элемент1, Элемент2,...]
или
[ Голова | Хвост ]
или
[ Элемент1, Элемент2,... | Остальные].
Здесь знак | используется для отделения начала списка от конца.
2.2.Операции над списками
2.2.1.Принадлежность к списку (member)
Отношение принадлежности записывается в виде двух предложений:
member(X,[X|Tail]).
member(X,[_|Tail]) :- member(X,Tail).
Оно основано на следующих соображениях: либо X - голова списка, либо X принадлежит хвосту этого списка.
2.2.2.Сцепление (конкатенация) списков (conc)
Обозначается через conc(L1,L2,L3).
Содержание Назад Вперед