Практическая информатика


Факты - часть 2


Как правило, имена предикатов и аргументов записываются в именительном падеже. Пробелы в них не допускаются, поэтому в качестве разделителей в символьных константах используется символ подчеркивания.

Пример

Факт "Коля работает слесарем" на Прологе запишется следующим образом:

профессия(коля, слесарь).

Здесь предикат профессия/2 имеет два аргумента: первый означает имя человека, а второй - профессию. Факт "Борису 10 лет" можно представить в виде:

возраст("Борис", 10).

Порядок аргументов предиката связан со смыслом факта и поэтому не изменяем. При записи фактов надо помнить, что:

имя факта начинается со строчной буквы; запись каждого факта заканчивается точкой.

В приведенных выше примерах профессия/2 и возраст/2 - предикаты (составные термы), коля и слесарь - атомы, 10 - число, "Борис" - строка. Подробнее о видах термов Пролога рассказывается в следующем разделе.

База данных на Прологе - это совокупность фактов. В процессе работы в базу данных можно добавлять новые факты, удалять или изменять старые.

Пример

Составим базу данных из следующих фактов: "слон больше, чем лошадь", "лошадь больше, чем осел", "осел больше, чем собака" и "осел больше, чем обезьяна":

больше(слон, лошадь). больше(лошадь, осел). больше(осел, собака). больше(осел, обезьяна).

Мы использовали предикат больше/2, имеющий два параметра.

Сохраним эту базу данных в текстовом файле и затем познакомим Пролог с ней. Теперь можно формулировать запросы к интерпретатору Пролога:

?- больше(слон, лошадь). Yes

?- больше(лошадь, слон). No

Задания

  1. Сохраните базу данных "Цвет" в файле task1.pl: цвет(машина, красный). цвет(светофор, зеленый). цвет(солнце, желтый). цвет(море, синий).

    Сформулируйте несколько запросов к данной базе данных.

  2. Постройте базу данных из следующих фактов, используя предикат признак/2.
    • Признак зимы - снег.
    • Признак весны - капель.
    • Признак лета - солнце.
    • Признак осени - дождь.

    Сохраните ее в том же файле и сформулируйте несколько запросов к данной базе данных.




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