Maksym Prokopov personal blog
Idea is a something worth sharing

Введение в Prolog

29.05.2018

Reading time: 2 min.

Хочу такой туториал, с которым все понятно, куда коней запрягать. А его нет. Напишу тогда свой.

Итак, Пролог это не обычный язык программирования. Самый лучший пример использования это решение логической задачи типа

5 разных человек в 5 разных домах разного цвета, курят 5 разных марок сигарет, выращивают 5 разных видов животных, пьют 5 разных видов напитков. Вопрос: кто выращивает рыбок?

Подсказки:

Для решения задач такого типа очень подходит Prolog.
Язык оперирует всего тремя понятиями, это Факт (Fact), Правило (Rule) и Запрос (Query).

Факт.

Как выглядит факт? Простое утверждение, без условий.

Пример: Норвежец живет в первом доме.

Правило.

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

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

Запрос.

Пример: Кто выращивает рыбок?

Здесь все понятно, система должна найти ответ на запрос используя факты и правила.

Написание программы на прологе и есть нахождение ответа на запрос используя для этого правила и факты. Создание таких правил и фактов и есть написание программы.

Где еще используется Prolog? В языке запросов Datalog в Datomic и Cascalog на Hadoop.