ВУЗ:
Составители:
125
Примечание: Пролог выдаѐт все возможные ответы на запрос за счѐт автоматического перебора
всех вариантов решения. Заметим, что имя «пѐтр» мы вводим со строчной буквы, так как это атом,
а «Вещь» является переменной, поэтому начинается с прописной.
2) Кто имеет телевизор?
Запрос:
? - имеет (Человек, телевизор)
Ответ: Человек-иван.
Че л овек=николай.
Человек=Петр.
3) Кто имеет больше 10 тысяч рублей?
Запрос:
? - имеет (Человек, руб (Сумма)).
Сумма>10000.
Ответ: Человек= Николай.
4) Какие вещи имеет Иван, которых нет у Николая?
Запрос: ? - имеет (иван, Вещь),
Не (имеет (Николай, Вещь)).
Ответ; Вещь=руб( 10000),
Вещь= машина.
Вещь= магнитофон.
Примечание. Заметим, что Пролог выдал явно абсурдный ответ, что у Ивана есть 10000
рублей, которых нету Николая, хотя мы видим, что денег у Николая даже больше, чем у Ивана.
Это пример того, что Пролог не понимает смысла запросов. Для него «руб( 10000)» и «руб(20000)»
- это различные несопоставимые структуры. Если бы мы хотели исключить деньги из
рассмотрения вообще, то запрос надо было бы переформулировать так:
? - имеет (иван, Вещь),
Вещь/=руб(_),
не (имеет( Николай, Вещь)),
Здесь операция «/=>» как и «не», — это встроенные предикаты языка
Пролог. Символ «_» обозначает так называемую пустую переменную, значение которой нас не
интересует.
5) Кто что имеет?
Запрос: ? - имеет (Кто, Что).
Примечание: Пролог выдаѐт все возможные ответы на запрос за счѐт автоматического перебора
всех вариантов решения. Заметим, что имя «пѐтр» мы вводим со строчной буквы, так как это атом,
а «Вещь» является переменной, поэтому начинается с прописной.
2) Кто имеет телевизор?
Запрос:
? - имеет (Человек, телевизор)
Ответ: Человек-иван.
Че л овек=николай.
Человек=Петр.
3) Кто имеет больше 10 тысяч рублей?
Запрос:
? - имеет (Человек, руб (Сумма)).
Сумма>10000.
Ответ: Человек= Николай.
4) Какие вещи имеет Иван, которых нет у Николая?
Запрос: ? - имеет (иван, Вещь),
Не (имеет (Николай, Вещь)).
Ответ; Вещь=руб( 10000),
Вещь= машина.
Вещь= магнитофон.
Примечание. Заметим, что Пролог выдал явно абсурдный ответ, что у Ивана есть 10000
рублей, которых нету Николая, хотя мы видим, что денег у Николая даже больше, чем у Ивана.
Это пример того, что Пролог не понимает смысла запросов. Для него «руб( 10000)» и «руб(20000)»
- это различные несопоставимые структуры. Если бы мы хотели исключить деньги из
рассмотрения вообще, то запрос надо было бы переформулировать так:
? - имеет (иван, Вещь),
Вещь/=руб(_),
не (имеет( Николай, Вещь)),
Здесь операция «/=>» как и «не», — это встроенные предикаты языка
Пролог. Символ «_» обозначает так называемую пустую переменную, значение которой нас не
интересует.
5) Кто что имеет?
Запрос: ? - имеет (Кто, Что).
125
Страницы
- « первая
- ‹ предыдущая
- …
- 123
- 124
- 125
- 126
- 127
- …
- следующая ›
- последняя »
