- •1) Рекурсия в программировании
- •4) Основы языка Лисп
- •5)Цикл в Лиспе
- •6. Рекурсии в Прологе.
- •7.Факты в Прологе
- •9. Списки в Прологе.
- •10. Списки в Лиспе
- •11. Типы данных Turbo Prolog
- •12. Типы данных в Лиспе
- •13. Опции главного меню.
- •14.Работа с экраном в Лиспе
- •15.Интеллектуальные экспертные системы
- •17)Префиксная нотация.
- •18. Система предикатов
- •21) Элементы структурного программирования
- •22)Факты, вопросы, правила.
- •24) Функции, определенные пользователем
- •26. Ввод-вывод в Лиспе.
- •27) Ввод и вывод в Турбо-Прологе
- •28)Правила в Лиспе
- •30) Функционалы в Лиспе
- •31) Разрушающие функции
- •32. Логические константы в Лисп.
- •33) Управляющая структура cond в Лисп
- •34. Циклы в Лисп
26. Ввод-вывод в Лиспе.
В Common Лиспе, muLISPе ввод и вывод осуществляется независимо от конфигурации внешних устройств через потоки. Понятие потока в Лиспе сходно с аналогичным в C++ : потоки представляют собой логические каналы, из которых можно читать (поток ввода) или в которые можно писать (поток вывода)данные. Стандартным входным потоком (по умолчанию) считается поток из клавиатуры в программу, стандартным выходным потоком считается поток из программы на дисплей.
Для управления потоками в muLISPе имеются встроенные функции переключения потоков :
-Входного потока : (rds<устройство>)
-Выходного потока : (wrs<устройство>)
Устройством может быть клавиатура, дисплей, внешний файл, принтер. В случае использования внешнего файла нужно указать его имя (rdshelp.lsp)Переключение потоков на стандартные : (rds) –переключение входного потока на клавиатуру, (wrs) –переключение выходного потока на дисплей.
27) Ввод и вывод в Турбо-Прологе
¤|22\05\12~~07:57:02|¤ <Raphael> Ввод и вывод в Прологе организуется с помощью специальных предикатов чтения и записи, которые могут рассматриваться как аналоги соответствующих подпрограмм в языках Паскаль и Си.
¤|22\05\12~~07:57:03|¤ <Raphael> В общем случае пролог- программа взаимодействует с несколькими файлами ( в том числе с "псевдофайлом" keyboard (клавиатура) и "псевдофайлом" screen (экран)). Она считывает данные из нескольких входных файлов, называемых входными потоками, и выводит данные в несколько выходных файлов, называемых выходными потоками.
¤|22\05\12~~07:57:04|¤ <Raphael> В каждый момент выполнения программы лишь два файла являются "активными": один для ввода, другой для вывода. В начальный момент эти два потока соответствуют терминалу. Текущий входной поток может быть заменен на другой файл name_of_file посредством цели
¤|22\05\12~~07:57:07|¤ <Raphael> readdevice(name_of_file).
¤|22\05\12~~07:57:07|¤ <Raphael> Такая цель всегда успешна (если только с файлом name_of_file все в порядке), а в качестве побочного эффекта происходит переключение ввода с предыдущего входного потока на файл name_of_file.
¤|22\05\12~~07:57:10|¤ <Raphael> Форматный вывод writef
¤|22\05\12~~07:57:12|¤ <Raphael> writef(Format,Arg1,...,Argn) - подобен write, но осуществляет форматированный вывод в соответствии с параметром Format, который представляется в виде
¤|22\05\12~~07:57:15|¤ <Raphael> %p
¤|22\05\12~~07:57:16|¤ <Raphael> Возможные значения p :
¤|22\05\12~~07:57:18|¤ <Raphael> d - нормальное десятичное число ( символы и целые числа);
¤|22\05\12~~07:57:18|¤ <Raphael> u - беззнаковое целое;
¤|22\05\12~~07:57:20|¤ <Raphael> s - строка (атомы или строки);
¤|22\05\12~~07:57:20|¤ <Raphael> c - символ (символы и целые);
¤|22\05\12~~07:57:20|¤ <Raphael> g - вещественное в самом коротком формате;
¤|22\05\12~~07:57:22|¤ <Raphael> e - вещественное в экспоненциальном представлении;
¤|22\05\12~~07:57:25|¤ <Raphael> f - вещественное в десятичном представлении ( задается по умолчанию);
¤|22\05\12~~07:57:25|¤ <Raphael> x - шестнадцатиричное число (символы и целые числа).
¤|22\05\12~~07:57:35|¤ <Raphael> короче ща ссылку дам
¤|22\05\12~~07:58:07|¤ <Raphael> http://almamani.narod.ru/001.html
¤|22\05\12~~07:58:20|¤ <Raphael> в поиске пробьеш
¤|22\05\12~~07:58:21|¤ <Raphael> Ввод и вывод в Турбо-Прологе