Пролог-программы, должны содержать как минимум две части:
- predicates - часть для описания структур отношений, используемых в программе, в виде предикатов;
- clauses - часть для определения предикатов в виде набора фактов и правил.
Возьмем, к примеру код программы:
predicates
likes(string, string)
clauses
likes("Ivan", "Maria").
likes("Petr", "Pivo").
likes("Ivan", X) :- likes("Petr", X).
likes(string, string)
clauses
likes("Ivan", "Maria").
likes("Petr", "Pivo").
likes("Ivan", X) :- likes("Petr", X).
в части predicates описание типов - будут строковые переменные(в нашем случае),
в части clauses наборы фактов и правил, например, Иван и Петр любят пить пиво, и это заключено в строчках
likes("Petr", "Pivo").
likes("Ivan", X) :- likes("Petr", X).
likes("Ivan", X) :- likes("Petr", X).
Итак, первое утверждение говорит о том, что Петр любит пиво, второе рассказывает о том, что у Ивана и Петра есть общая составляющая - вторая часть, у Петра пиво(уже знаем), значит и у Ивана - пиво(из последнего факта узнали).
Теперь запускаем программу:
пишем в части Goal (правая часть от программы):
Goal: likes(Who, "pivo")
Результат выполнения этого запроса:
Who = Petr
Who = Ivan
2 Solution
Who = Ivan
2 Solution
Пролог отличается разительно от других языков программирования тем, что он логический. То есть писать на нём нужно логичными фактами и утверждениями, выводить цепочку фактов и потом получать в запросно-диалоговом режиме истину на запросы. При этом запросы надо уметь составлять, поэтому даже пользователь программы должен уметь как минимум пользоваться средой программирования- в нашем случае это TurboProlog.
Если вам нравится то, что мы пишем, пожалуйста, нажмите на интересующую вас рекламу сбоку, сверху, или сразу после статьи. Будет стимул писать лучше и чаще. Хорошего вам дня.