Cтраница 4
Однако, как Вы должны уже заметить, смысл некоторых встроенных предикатов может быть выражен только процедурно. В данном случае это приводит к тому, что смысл программы может оказаться зависимым от того места, в котором находится проверка термов на сопоставимость. [46]
Возможность доступа к операционной системе DOS также реализуется с помощью встроенного предиката. При выборе соответствующей опции меню Пролог запускает вторую копию операционной системы. Для пользователя это представляется так, как будто программа закончила работу, управление вернулось к DOS и можно выполнить любые ее команды, введя их с клавиатуры. [47]
Пролог может объявлять операторы префиксными, инфиксными или постфиксными с помощью встроенного предиката. [48]
Наконец, отметим, что при трансформировании правил Дейталога в алгебраические выражения встроенные предикаты сравнения могут быть представлены в виде условий операции соединения. [49]
Тем не менее, как показано в следующем примере, с помощью встроенных предикатов достаточно легко писать небезопасные программы Дейталога. [50]
При выполнении правила Дейталога со встроенными предикатами необходимо соблюдать следующий принцип: вычисление встроенного предиката откладывается до тех пор, пока все его переменные не будут связаны константами. Исключение здесь можно ( иногда даже нужно) сделать для предиката равенства. Предикат равенства можно вычислять, как только один из его аргументов либо является константой, либо связан константой. [51]
Допускается, что входной и выходной потоки данных могут быть специфицированы в вызовах встроенных предикатов, а формат может быть специфицирован при вводе-выводе терма. Таким образом, в вызовах write / З и read / З первый аргумент мог бы быть потоком для вывода или ввода, второй - форматом терма, а третий - термом, который вводится или выводится. [52]