Основные понятия языка программирования пролог
Основные понятия языка программирования Пролог
Пролог = "ПРОграммирование в ЛОГике".
В логике формулируется некая теорема, а затем с использованием фактов и правил она доказывается. Пример: Смертен ли Сократ?
Сократ человек. <- Факт.
Все люди смертны. <- Правило
Сократ смертен.<- Доказательный с помощью дедукции факт
Факт выражает нечто, что является истинным само по себе. Примеры фактов:
Сократ человек.
Сократ смертен.
Правило выражает отношения между фактами. Одна часть правила (следствие) является истинной только в том случае, если другая часть (посылка) тоже истинна. Пример правила:
«Если кто-то является человеком, то этот кто-то смертен».
Факты и правила называются утверждениями. Пример утверждения:
живет(сократ, афины).
live(sokrat, afini).
Компонентами этого факта являются предикат и два аргумента.
Предикат описывается именем (живет(live)), а также его арностью (количеством его аргументов — 2).
В предикатах важен порядок аргументов (Сократ живет в Афинах, а не наоборот). Пример утверждения:
смертен(Х):- человек(Х).
Два предиката с арностью 1. Для каждого предиката используется одна и та же переменная.
смертен(Х) — это заголовок, определяет смысл утверждения и включает в себя имя предиката и его аргументы.
человек(Х) — тело. содержащее цели (их может быть много), которые должны быть достигнуты (удовлетворены) для того, чтобы заголовок был истинен.
Символы ":-" читаются как "если" или "при условии, что", называются шеей. соединяет заголовок и тело. Утверждения, не имеющие тела, называются простыми. Предикаты могут содержать более одного утверждения. Два примера предикатов, состоящих из нескольких утверждений:
человек(сократ).
человек(платон).
смертен(Х) :- человек(Х).
смертен(Х) :- животное(Х).
Правила могут иметь более одной цели. Пример:
афинянин(Х):- живет(Х, афины),
свободный(Х).
Эквивалентные примеры:
живет(платон, афины):- true.
живет(платон, афины).
!!!! Имя переменной — с 1-ой заглавной буквы!!!!!
Вместо аргумента может стоять символ "_", который означает, что неважно, что может быть в качестве этого аргументов, т. е. любой аргумент.