Книга: ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ
6.5. Создание структур и работа с компонентами структур
6.5. Создание структур и работа с компонентами структур
Обычно когда мы хотим задать в программе на Прологе операции со структурой определенного вида, то мы делаем это, «упоминая» некоторым образом подобную структуру. Это значит, что если предикат используется для обработки множества структур различного вида, передаваемых ему в качестве аргумента, то обычно мы обеспечиваем отдельное утверждение для каждого класса структур. Хорошим примером такого подхода является программа для символьного дифференцирования, которая будет рассмотрена в разд. 7.1. В этой программе используются отдельные утверждения для функторов +, -, * и так далее. Мы знаем заранее, какие структуры могут появиться, и обеспечиваем утверждения для каждой из них.
В некоторых программах мы не можем предвидеть заранее все возможные структуры. Это имеет место, например, при написании программы «красивой печати», которая могла бы печатать произвольные структуры языка Пролог, размещая их в нескольких строках и используя отступы. (См. разд. 5.1, где представлена такая программа для печати списков.) Так, например, возможно, мы захотели бы напечатать терм
книга(629,автор(бронте, эмили),вх)
следующим образом:
книга
629
автор
бронте
эмили
вх
Важным моментом является то, что мы хотим, чтобы эта программа работала правильно, какую бы структуру мы ей ни задали. Понятно, что одна из возможностей сделать это – обеспечить отдельное утверждение для каждого функтора, какой только можно представить. Но это работа, которую мы никогда не завершим, потому что существует бесконечно много различных функторов! Написать подобную программу можно, используя встроенные предикаты для работы со структурами произвольного вида. Здесь мы опишем некоторые из них – это предикаты functor, arg и '=..'. Мы опишем также предикат name, выполняющий операции над атомами.
- Практическая работа 53. Запуск Access. Работа с объектами базы данных
- Выстройте структуру
- СТРУКТУРА ПРОСТОЙ ПРОГРАММЫ
- Создание файлов с блокировкой
- Физическая структура базы данных
- Зачем изучать физическую структуру базы данных?
- Лекция 15. Работа с базами данных
- Мост между физической и логической структурой базы данных
- Логическая структура базы данных InterBase
- Работа с ресурсами локальной сети
- Эффективная работа с временными файлами сортировки
- Оптимальная структура хранения записей