Программирование на языке Пролог | страница 114
Конкретные реализации Пролога могут включать и некоторые другие арифметические операции, такие, как возведение в степень. Примеры, приведенные в этой книге, используют лишь операции, перечисленные здесь.
6.12. Сравнение чисел
В Прологе имеются шесть предикатов для сравнения целых чисел. Эти предикаты первоначально были представлены в разд. 2.5, когда мы обсуждали арифметические возможности языка. Каждый такой предикат записывается как инфиксный оператор, имеющий два аргумента.
Предикат проверки на равенство, описанный в разд. 6.8, считается согласованным и в случае, когда его аргументами являются равные целые числа.
Предикат проверки на несовпадение из разд. 6.8 также применим для целых чисел. Он выполняется, когда его аргументами являются различные числа.
Предикат меньше выполняется, если целое число, соответствующее левому аргументу, меньше, чем число, соответствующее правому аргументу. Оба аргумента должны быть конкретизированы.
Предикат больше выполняется, когда целое число, соответствующее левому аргументу, больше, чем целое число, соответствующее правому аргументу. Оба аргумента должны быть конкретизированы, иначе возникает ошибка.
Предикат больше или равно выполняется, когда целое число, соответствующее левому аргументу, больше или равно целому числу, соответствующему правому аргументу. Оба аргумента должны быть конкретизированы.
Предикат меньше или равно выполняется, когда левый аргумент меньше или равен правому аргументу. Оба аргумента должны быть конкретизированы. Заметим, что этот предикат записан как '=‹' а не '‹=' так что символ '‹=' является свободным и может быть использован в качестве оператора, который выглядит как стрелка.
6.13. Наблюдение за выполнением программы на Прологе
В этом разделе описаны встроенные предикаты, которые позволяют наблюдать за выполнением вашей программы. Здесь мы лишь опишем эти встроенные предикаты, а более подробное обсуждение отладки и трассировки программ содержится в гл. 8.
Эффект выполнения предиката trace заключается в установлении режима полной трассировки. Это значит, что после выполнения trace вы получите возможность наблюдать за каждым из четырех основных типов событий[9], которые происходят с каждым порождаемым вашей программой целевым утверждением.
Эффект выполнения предиката notrace заключается в отмене режима полной трассировки. Однако сохраняется трассировка, вызываемая наличием контрольных точек (предикат