Математическая логика и теория алгоритмов
Полная программа для отношения предок содержит оба прави ла; одно для ближайших предков и другое для отдаленных предков. В результате имеем: предок(Х,2): - родитель(Х,7). npeflOK(X,Z):- родитель(Х,У), (3.23) предок(У,2). Отметим, что • рекурсивное задание правил проводится не единственным образом. Так, предложение (3.23) можно заменить, например, на следующее предок(Х,У): - родитель(Х,У). npeAOK(X,Z): - предок(Х, ¥ ), предок( ¥ ,2). Если к рассмотренной в § 12 программе добавить предложение (3.23), то полученную программу можно, например, спросить: «Кто потомки Пам?» На ПРОЛОГе этот вопрос запишем в виде; ?-предок(пам,Х). Система ответит Х=боб; Х=эни; Х=пат; Х=джим Выясним, как получает программа ответ. Предложения (3.23) записываются в виде; родитель(Х,2)=>предок(Х,2), родитель(Х,У)&предок(У,2)=>предок(Х,2). 125
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy