сокращенная запись для чтения программ из файлов. Файлы, из которых предстоит чтение, просто помещаются в список и этот список используется в качестве цели. Например:

        ?-  [файл1, файл2, файл3].

Это в точности эквивалентно следующим трем целям:

        ?-  соnsult( файл1), соnsult( файл2), соnsult( файл3).

Встроенный предикат reconsult аналогичен consult. Цель

        ?-  reconsult( F).

даст тот же эффект, что и consult( F) с одним исключением. Если в F есть предложения, касающиеся отношений, которые уже были определены ранее, старые определения заменяются на новые из F. Разница между consult и reconsult в том, что consult всегда добавляет новые предложения, в то время как reconsult переопределяет ранее введенные определения. Однако reconsult не произведет никакого эффекта на те отношения, о которых в F ничего не сказано.

Следует еще раз заметить, что детали 'консультирования' с файлами зависят от конкретной реализации Пролога. Это замечание касается и большинства остальных встроенных процедур.

Резюме

Ввод и вывод (отличный от связанного с вопросами к программе) осуществляется посредством встроенных процедур. В данной главе описан простой и практичный набор таких процедур, имеющихся во многих реализациях Пролога.

Файлы являются последовательными. Существуют текущие входной и выходной потоки. Пользовательский терминал рассматривается как файл с именем user.

Переключение между потоками осуществляется с помощью процедур:

    sее( Файл)                 Файл становится текущим входным потоком

    tell( Файл)                  Файл становится текущим выходным потоком

    seen                             закрывается текущий входной поток

    told                              закрывается текущий выходной поток

Файлы читаются и записываются двумя способами:

    как последовательности символов

    как последовательности термов

Встроенные процедуры для чтения и записи символов и термов таковы:

    rеad( Терм)

                            вводит следующий терм

    write( Терм)

                            выводит Терм

    put( КодСимвола)

                            выводит символ с заданным ASCII - кодом

    get0( КодСимвола)

                            вводит следующий символ

    gеt( КодСимвола)

                            вводит ближайший следующий 'печатаемый' символ

Две процедуры облегчают форматирование:

    nl                       начинает новую строку

    tab( N)              выводит N пробелов

Процедура nаmе( Атом, СписокКодов) осуществляет синтез и декомпозицию атомов. СписокКодов - список ASCII кодов символов, образующих Атом.

Назад | Содержание | Вперёд

Вы читаете Prolog
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату