Программирование на Турбо-Прологе


Программирование на Турбо-Прологе - стр. 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).


- Начало -  - Назад -  - Вперед -