В любой реализации Пролога обычно



Резюме

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

            var( X)                     Х - (неконкретизированная) переменная
            nonvar( X)               Х - не переменная
            atom( X)                  Х - атом
            integer( X)               Х - целое
            atomic( X)               Х - или атом, или целое


  • Термы можно синтезировать или разбирать на части:

            Терм =.. [Функтор [ СписокАргументов]
            functor( Терм, Функтор, Арность)
            arg( N, Терм, Аргумент)
            name( атом, КодыСимволов)
  • Программу на Прологе можно рассматривать как реляционную базу данных, которую можно изменять при помощи следующих процедур:

            аssert( Предл)                 добавляет предложение Предл к программе
            аssегtа( Предл)               добавляет в начало
            asserfz( Предл)               добавляет в конец
            rеtrасt( Предл)                удаляет предложение,
                                                      сопоставимое с предложением Предл
  • Все объекты, отвечающие некоторому заданному условию, можно собрать в список при помощи предикатов:

            bagof( X, Р, L)         L - список всех X, удовлетворяющих условию Р

            setof( X, Р, L)          L - отсортированный список всех X,
                                             удовлетворяющих условию Р

            findall( X, Р, L)        аналогичен bagof
  • repeat - средство управления, позволяющее порождать неограниченное число альтернатив для автоматического перебора.



Содержание раздела