logo search
TurboProlog / Документация / TOM_1

Представление проверки в правиле.

Посмотрите более внимательно на четвертое правило для action. Оно

будет сопоставлено для любого аргумента, переданного правилу. Но вы хоти-

те быть уверенными, что оно не напечатает "Я не знаю такого числа" если

число попадает в правильный диапазон. Это задача для подцелей

X<>1, X<>2, X<>3,

где <> обозначает не равно. Для того, чтобы напечатать Я не знаю такого

числа, Пролог должен сначала доказать , что Х не равен 1,2 или 3. Если

какая-нибудь из этих подцелей не потерпит неуспех, то Пролог попытается

использовать последнюю альтернативу. Но здесь не указано последней аль-

тернативы и поэтому конец предложения никогда не выполнится.

Обратите внимание, что action подразумевает, что Choice уже связана.

Если вы вызываете action со свободной переменной в качестве аргумента, то

цель будет сопоставлена со всеми предложениями. Первые три правила вернут

альтернативные решения, а последнее вызовет ошибку, так как вы не можете

проверить равна ли несвязанная переменная числу.