|
||||
|
Назад | Содержание| Вперёд 6. 5. Ввод программ: ...Назад | Содержание| Вперёд 6. 5. Ввод программ: consult,reconsult Передавать программы пролог-системеможно при помощи двух встроенныхпредикатов: consult и reconsult. Чтобы система считала программу из файла F, нужнопоставить цель ?- consult( F). В результате все предложения программы,содержащейся в F, будут использованыпролог-системой при ответе на дальнейшие вопросыпользователя. Если позже в том же сеансепроизойдет "консультация" с другим файлом,предложения этого нового файла будут простодобавлены в конец текущего множествапредложений. Для того, чтобы запустить программу, необязательно записывать ее в файл, а затем"консультироваться" с ним. Вместо чтенияфайла система может принимать программу прямо стерминала, который соответствует псевдофайлу user.Добиться этого можно так: ?- consult( user). После этого система будет ожидать вводапредложений программы с терминала. В некоторых пролог - системах применяетсясокращенная запись для чтения программ изфайлов. Файлы, из которых предстоит чтение,просто помещаются в список и этот списокиспользуется в качестве цели. Например: ?- [файл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 кодов символов, образующих Атом. Назад | Содержание| Вперёд |
|
||
Главная | В избранное | Наш E-MAIL | Добавить материал | Нашёл ошибку | Наверх |
||||
|