SWI-Prolog

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
м (Литература по языку Пролог)
 
(не показаны 22 промежуточные версии 1 участника)
Строка 1: Строка 1:
 +
__TOC__
 +
<br/>
 +
----
 
== Система логического программирования на встроенном [http://www.swi-prolog.org/ SWI‑Prolog] ==
 
== Система логического программирования на встроенном [http://www.swi-prolog.org/ SWI‑Prolog] ==
 
=== Файлы и ресурсы ===
 
=== Файлы и ресурсы ===
Расположение файлов см. [[Список файлов дистрибутива платформы Гедымин]]<br/>Для новой версии выполняемого модуля платформы Гедымин, папка для размещения временных отладочных файлов SWI-Prolog находится по пути ''C:\Users\%username%\AppData\Local\Gedemin\swipl\temp''
+
Расположение файлов см. [[Список файлов дистрибутива платформы Гедымин]]
 
==== Системные файлы DLL ====
 
==== Системные файлы DLL ====
 
{| class="wikitable"
 
{| class="wikitable"
Строка 36: Строка 39:
 
| [https://github.com/GoldenSoftwareLtd/gedemin-prolog/blob/master/gd_pl/gd_pl.pl gd_pl.pl] || генерация файла сохраненного состояния
 
| [https://github.com/GoldenSoftwareLtd/gedemin-prolog/blob/master/gd_pl/gd_pl.pl gd_pl.pl] || генерация файла сохраненного состояния
 
|-
 
|-
| [https://github.com/GoldenSoftwareLtd/gedemin-prolog/tree/master/gd_pl/gd_pl_state gd_pl_state] || папка с файлами, не входящими в стандартную поставку SWI-Prolog
+
| [https://github.com/GoldenSoftwareLtd/gedemin-prolog/tree/master/gd_pl/gd_pl_state gd_pl_state] || папка с файлами для сохраненного состояния, не входящими в стандартную поставку SWI-Prolog
 
|}
 
|}
=== PL-классы ===
+
 
 +
<h3 id="pl_classes"> PL-классы </h3>
 
Под термином '''''PL-класс''''' понимается класс, предназначенный на для взаимодействия со встроенным SWI‑Prolog.
 
Под термином '''''PL-класс''''' понимается класс, предназначенный на для взаимодействия со встроенным SWI‑Prolog.
 
<br/>Соответственно, экземпляр PL-класса будет называться '''''PL‑объект'''''.
 
<br/>Соответственно, экземпляр PL-класса будет называться '''''PL‑объект'''''.
==== TgsPLClient ====
+
<h4 id="TgsPLClient"> TgsPLClient </h4>
'''Класс клиента SWI-Prolog.'''
+
;Класс клиента SWI-Prolog.
 
:<u>Иерархия</u>
 
:<u>Иерархия</u>
 
::<code>'''TObject'''</code>
 
::<code>'''TObject'''</code>
 
:<u>Методы</u>
 
:<u>Методы</u>
::<code>'''Initialise'''(AParams: String): Boolean</code><br/>
+
::<code id="Initialise">'''Initialise'''(AParams: String): Boolean</code><br/>
 
:::''Инициализация SWI-Prolog.''
 
:::''Инициализация SWI-Prolog.''
::<code>'''IsInitialised''': Boolean</code><br/>
+
::<code id="IsInitialised">'''IsInitialised''': Boolean</code><br/>
 
:::''Проверка инициализации SWI-Prolog.''
 
:::''Проверка инициализации SWI-Prolog.''
::<code>'''Call(APredicateName''': String; AParams: TgsPLTermv): Boolean</code><br/>
+
::<code id="Call">'''Call'''(APredicateName: String; AParams: TgsPLTermv): Boolean</code><br/>
 
:::''Краткая форма для OpenQuery, NextSolution, Cut объекта TgsPLQuery, порождающая одно решение.''
 
:::''Краткая форма для OpenQuery, NextSolution, Cut объекта TgsPLQuery, порождающая одно решение.''
::<code>'''Call2'''(AGoal: String): Boolean</code><br/>
+
::<code id="Call2">'''Call2'''(AGoal: String): Boolean</code><br/>
 
:::''Выполнение терма (аналог предиката once/1).''
 
:::''Выполнение терма (аналог предиката once/1).''
::<code>'''Compound'''(AGoal: Unsigned short; AFunctor: String; ATermv: TgsPLTermv)</code><br/>
+
 
 +
::<code id="Cleanup">'''Cleanup''': Boolean</code><br/>
 +
:::''Очистка SWI-Prolog (деинициализация).''
 +
::<code id="Compound">'''Compound'''(AGoal: Unsigned short; AFunctor: String; ATermv: TgsPLTermv)</code><br/>
 
:::''Компоновка терма из функтора (имени терма) и аргументов (вектора термов).''
 
:::''Компоновка терма из функтора (имени терма) и аргументов (вектора термов).''
::<code>'''LoadScript'''(AScriptID: Integer): Boolean</code><br/>
+
::<code id="LoadScript">'''LoadScript'''(AScriptID: Integer): Boolean</code><br/>
 
:::''Загрузка Пролог-скрипта по идентификатору.''
 
:::''Загрузка Пролог-скрипта по идентификатору.''
::<code>'''LoadScriptByName'''(AScriptName: String): Boolean</code><br/>
+
::<code id="LoadScriptByName">'''LoadScriptByName'''(AScriptName: String): Boolean</code><br/>
 
:::''Загрузка Пролог-скрипта по имени.''
 
:::''Загрузка Пролог-скрипта по имени.''
::<code>'''ExtractData'''(ADataSet: TClientDataSet; APredicateName: String; ATermv: TgsPLTermv)</code><br/>
+
::<code id="ExtractData">'''ExtractData'''(ADataSet: TClientDataSet; APredicateName: String; ATermv: TgsPLTermv)</code><br/>
 
:::''Извлечение данных Пролог-запроса в клиентский набор данных.''
 
:::''Извлечение данных Пролог-запроса в клиентский набор данных.''
::<code>'''MakePredicatesOfSQLSelect'''(ASQL: String; ATr: TIBTransaction; APredicateName: String; AFileName: String; AnAppend: Boolean): Integer</code><br/>
+
::<code id="MakePredicatesOfSQLSelect">'''MakePredicatesOfSQLSelect'''(ASQL: String; ATr: TIBTransaction; APredicateName: String; AFileName: String; AnAppend: Boolean): Integer</code><br/>
 
:::''Формирование Пролог-фактов на основе SQL-запроса.''
 
:::''Формирование Пролог-фактов на основе SQL-запроса.''
::<code>'''MakePredicatesOfDataSet'''(ADataSet: TDataSet; AFieldList: String; APredicateName: String; AFileName: String; AnAppend: Boolean): Integer</code><br/>
+
::<code id="MakePredicatesOfDataSet">'''MakePredicatesOfDataSet'''(ADataSet: TDataSet; AFieldList: String; APredicateName: String; AFileName: String; AnAppend: Boolean): Integer</code><br/>
 
:::''Формирование Пролог-фактов на основе клиентского набора данных.''
 
:::''Формирование Пролог-фактов на основе клиентского набора данных.''
::<code>'''SavePredicatesToFile'''(APredicateName: String; ATermv: TgsPLTermv; AFileName: String)</code><br/>
+
::<code id="SavePredicatesToFile">'''SavePredicatesToFile'''(APredicateName: String; ATermv: TgsPLTermv; AFileName: String)</code><br/>
 
:::''Выгрузка данных Пролог-запроса в файл.''
 
:::''Выгрузка данных Пролог-запроса в файл.''
 
:<u>Свойства</u>
 
:<u>Свойства</u>
::<code>'''Debug''': Boolean</code><br/>
+
::<code id="Debug">'''Debug''': Boolean</code><br/>
 
:::''Режим отладки.''
 
:::''Режим отладки.''
  
==== TgsPLQuery ====
+
<h4 id="TgsPLQuery"> TgsPLQuery </h4>
'''Класс запроса SWI-Prolog.'''
+
;Класс запроса SWI-Prolog.
 
:<u>Иерархия</u>
 
:<u>Иерархия</u>
 
::<code>'''TObject'''</code>
 
::<code>'''TObject'''</code>
 
:<u>Методы</u>
 
:<u>Методы</u>
::<code>'''Close'''</code><br/>
+
::<code id="Close">'''Close'''</code><br/>
 
:::''Закрытие Пролог-запроса.''
 
:::''Закрытие Пролог-запроса.''
::<code>'''Cut'''</code><br/>
+
::<code id="Cut">'''Cut'''</code><br/>
 
:::''Отсечение следующих решений Пролог-запроса (выполнения предиката).''
 
:::''Отсечение следующих решений Пролог-запроса (выполнения предиката).''
::<code>'''NextSolution'''</code><br/>
+
::<code id="NextSolution">'''NextSolution'''</code><br/>
 
:::''Поиск следующего решения Пролог-запроса (выполнения предиката).''
 
:::''Поиск следующего решения Пролог-запроса (выполнения предиката).''
::<code>'''OpenQuery'''</code><br/>
+
::<code id="OpenQuery">'''OpenQuery'''</code><br/>
 
:::''Открытие Пролог-запроса и поиск первого решения (выполнение предиката).''
 
:::''Открытие Пролог-запроса и поиск первого решения (выполнение предиката).''
 
:<u>Свойства</u>
 
:<u>Свойства</u>
::<code>'''Eof''': Boolean</code><br/>
+
::<code id="Eof">'''Eof''': Boolean</code><br/>
 
:::''Признак поиска решения Пролог-запроса (выполнения предиката).''
 
:::''Признак поиска решения Пролог-запроса (выполнения предиката).''
::<code>'''PredicateName''': String</code><br/>
+
::<code id="PredicateName">'''PredicateName''': String</code><br/>
 
:::''Имя предиката (функтор).''
 
:::''Имя предиката (функтор).''
::<code>'''Termv''': TgsPLTermv</code><br/>
+
::<code id="Termv">'''Termv''': TgsPLTermv</code><br/>
 
:::''Аргументы предиката (вектор термов).''
 
:::''Аргументы предиката (вектор термов).''
  
==== TgsPLTermv ====
+
<h4 id="TgsPLTermv"> TgsPLTermv </h4>
'''Класс вектора термов SWI‑Prolog.'''
+
;Класс вектора термов SWI‑Prolog.
 
:<u>Иерархия</u>
 
:<u>Иерархия</u>
 
::<code>'''TObject'''</code>
 
::<code>'''TObject'''</code>
 
:<u>Методы</u>
 
:<u>Методы</u>
::<code>'''PutAtom'''(Idx: Unsigned short; AValue: String)</code><br/>
+
::<code id="PutAtom">'''PutAtom'''(Idx: Unsigned short; AValue: String)</code><br/>
 
:::''Передача по ссылке в терм данных типа Atom.''
 
:::''Передача по ссылке в терм данных типа Atom.''
::<code>'''PutDate'''(Idx: Unsigned short; AValue: Date)</code><br/>
+
::<code id="PutDate">'''PutDate'''(Idx: Unsigned short; AValue: Date)</code><br/>
 
:::''Передача по ссылке в терм данных типа Date.''
 
:::''Передача по ссылке в терм данных типа Date.''
::<code>'''PutDateTime'''(Idx: Unsigned short; AValue: Date)</code><br/>
+
::<code id="PutDateTime">'''PutDateTime'''(Idx: Unsigned short; AValue: Date)</code><br/>
 
:::''Передача по ссылке в терм данных типа DateTime.''
 
:::''Передача по ссылке в терм данных типа DateTime.''
::<code>'''PutFloat'''(Idx: Unsigned short; AValue: Real)</code><br/>
+
::<code id="PutFloat">'''PutFloat'''(Idx: Unsigned short; AValue: Real)</code><br/>
 
:::''Передача по ссылке в терм данных типа Float.''
 
:::''Передача по ссылке в терм данных типа Float.''
::<code>'''PutInt64'''(Idx: Unsigned short; AValue: Int64)</code><br/>
+
::<code id="PutInt64">'''PutInt64'''(Idx: Unsigned short; AValue: Int64)</code><br/>
 
:::''Передача по ссылке в терм данных типа Int64.''
 
:::''Передача по ссылке в терм данных типа Int64.''
::<code>'''PutInteger'''(Idx: Unsigned short; AValue: Integer)</code><br/>
+
::<code id="PutInteger">'''PutInteger'''(Idx: Unsigned short; AValue: Integer)</code><br/>
 
:::''Передача по ссылке в терм данных типа Integer.''
 
:::''Передача по ссылке в терм данных типа Integer.''
::<code>'''PutString'''(Idx: Unsigned short; AValue: String)</code><br/>
+
::<code id="PutString">'''PutString'''(Idx: Unsigned short; AValue: String)</code><br/>
 
:::''Передача по ссылке в терм данных типа String.''
 
:::''Передача по ссылке в терм данных типа String.''
::<code>'''PutVariable'''(Idx: Unsigned short)</code><br/>
+
::<code id="PutVariable">'''PutVariable'''(Idx: Unsigned short)</code><br/>
 
:::''Передача по ссылке в терм данных типа Variable (сброс ссылки в изначальное состояние).''
 
:::''Передача по ссылке в терм данных типа Variable (сброс ссылки в изначальное состояние).''
::<code>'''ReadAtom'''(Idx: Unsigned short): String</code><br/>
+
::<code id="ReadAtom">'''ReadAtom'''(Idx: Unsigned short): String</code><br/>
 
:::''Считывание по ссылке из терма данных типа Atom.''
 
:::''Считывание по ссылке из терма данных типа Atom.''
::<code>'''ReadDate'''(Idx: Unsigned short): Date</code><br/>
+
::<code id="ReadDate">'''ReadDate'''(Idx: Unsigned short): Date</code><br/>
 
:::''Считывание по ссылке из терма данных типа Date.''
 
:::''Считывание по ссылке из терма данных типа Date.''
::<code>'''ReadDateTime'''(Idx: Unsigned short): Date</code><br/>
+
::<code id="ReadDateTime">'''ReadDateTime'''(Idx: Unsigned short): Date</code><br/>
 
:::''Считывание по ссылке из терма данных типа DateTime.''
 
:::''Считывание по ссылке из терма данных типа DateTime.''
::<code>'''ReadFloat'''(Idx: Unsigned short): Real</code><br/>
+
::<code id="ReadFloat">'''ReadFloat'''(Idx: Unsigned short): Real</code><br/>
 
:::''Считывание по ссылке из терма данных типа Float.''
 
:::''Считывание по ссылке из терма данных типа Float.''
::<code>'''ReadInt64'''(Idx: Unsigned short): Int64</code><br/>
+
::<code id="ReadInt64">'''ReadInt64'''(Idx: Unsigned short): Int64</code><br/>
 
:::''Считывание по ссылке из терма данных типа Int64.''
 
:::''Считывание по ссылке из терма данных типа Int64.''
::<code>'''ReadInteger'''(Idx: Unsigned short): Integer</code><br/>
+
::<code id="ReadInteger">'''ReadInteger'''(Idx: Unsigned short): Integer</code><br/>
 
:::''Считывание по ссылке из терма данных типа Integer.''
 
:::''Считывание по ссылке из терма данных типа Integer.''
::<code>'''ReadString'''(Idx: Unsigned short): String</code><br/>
+
::<code id="">'''ReadString'''(Idx: Unsigned short): String</code><br/>
 
:::''Считывание по ссылке из терма данных типа String.''
 
:::''Считывание по ссылке из терма данных типа String.''
::<code>'''Reset'''</code><br/>
+
::<code id="">'''Reset'''</code><br/>
 
:::''Сброс вектора термов (выполнение метода PutVariable для всего вектора термов).''
 
:::''Сброс вектора термов (выполнение метода PutVariable для всего вектора термов).''
::<code>'''ToString'''(Idx: Unsigned short): String</code><br/>
+
::<code id="ToString">'''ToString'''(Idx: Unsigned short): String</code><br/>
 
:::''Считывание по ссылке терма и преобразование к строке.''
 
:::''Считывание по ссылке терма и преобразование к строке.''
::<code>'''ToTrimQuotesString'''(Idx: Unsigned short): String</code><br/>
+
::<code id="ToTrimQuotesString">'''ToTrimQuotesString'''(Idx: Unsigned short): String</code><br/>
 
:::''Считывание по ссылке терма и преобразование к строке без обрамляющих кавычек.''
 
:::''Считывание по ссылке терма и преобразование к строке без обрамляющих кавычек.''
 
:<u>Свойства</u>
 
:<u>Свойства</u>
::<code>'''DataType'''(Idx: Unsigned short): Integer</code><br/>
+
::<code id="DataType">'''DataType'''(Idx: Unsigned short): Integer</code><br/>
 
:::''Тип данных.''
 
:::''Тип данных.''
::<code>'''Size''': Unsigned short</code><br/>
+
::<code id="Size">'''Size''': Unsigned short</code><br/>
 
:::''Размер вектора термов.''
 
:::''Размер вектора термов.''
::<code>'''Term'''(Idx: Unsigned short): Unsigned short</code><br/>
+
::<code id="Term">'''Term'''(Idx: Unsigned short): Unsigned short</code><br/>
 
:::''Ссылка на терм.''
 
:::''Ссылка на терм.''
 +
 
=== Пролог-скрипты ===
 
=== Пролог-скрипты ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
|-
 
|-
| https://upload.wikimedia.org/wikipedia/commons/e/e3/%D0%9F%D1%80%D0%BE%D0%BB%D0%BE%D0%B3-%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B.png
+
| https://upload.wikimedia.org/wikipedia/commons/b/b2/Pl_Examples_Script.png
 
|}
 
|}
=== Примеры использования PL-объектов ===
+
=== [[Примеры использования PL-объектов]] ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
|-
 
|-
| https://upload.wikimedia.org/wikipedia/commons/4/43/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_PL-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2.png
+
| https://upload.wikimedia.org/wikipedia/commons/d/de/Pl_Examples.png
 
|}
 
|}
 +
 
=== Учебный пример. Игра крестики-нолики ===
 
=== Учебный пример. Игра крестики-нолики ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
|-
 
|-
| https://upload.wikimedia.org/wikipedia/commons/0/08/%D0%A3%D1%87%D0%B5%D0%B1%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80._%D0%98%D0%B3%D1%80%D0%B0_%D0%BA%D1%80%D0%B5%D1%81%D1%82%D0%B8%D0%BA%D0%B8-%D0%BD%D0%BE%D0%BB%D0%B8%D0%BA%D0%B8.png
+
| https://upload.wikimedia.org/wikipedia/commons/4/4a/Xo_game15o9.png
 
|}
 
|}
 +
 
=== [http://www.swi-prolog.org/IDE.html Средства разработки] ===
 
=== [http://www.swi-prolog.org/IDE.html Средства разработки] ===
  
 
==== [http://lakk.bildung.hessen.de/netzwerk/faecher/informatik/swiprolog/indexe.html SWI-Prolog Editor] ====
 
==== [http://lakk.bildung.hessen.de/netzwerk/faecher/informatik/swiprolog/indexe.html SWI-Prolog Editor] ====
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Строка 168: Строка 177:
 
| https://upload.wikimedia.org/wikipedia/commons/b/bb/SWI-Prolog_Editor.png
 
| https://upload.wikimedia.org/wikipedia/commons/b/bb/SWI-Prolog_Editor.png
 
|}
 
|}
 +
 +
==== [http://www.swi-prolog.org/gtrace.html SWI-Prolog graphical tracer] ====
 +
{| class="wikitable"
 +
|-
 +
|-
 +
| https://upload.wikimedia.org/wikipedia/commons/a/a5/Swi_graphical_tracer.png
 +
|}
 +
 +
==== [http://www.swi-prolog.org/pldoc/man?section=profile SWI-Prolog profiler] ====
 +
{| class="wikitable"
 +
|-
 +
|-
 +
| https://upload.wikimedia.org/wikipedia/commons/d/d9/Swi_profiler.png
 +
|}
 +
<br/>
 +
----
 +
== Литература по языку Пролог ==
 +
* [http://www.e-reading.club/book.php?book=96404 У.Клоксин, К.Меллиш. Программирование на языке Пролог]
 +
* [http://royallib.com/read/bratko_ivan/programmirovanie_na_yazike_prolog_dlya_iskusstvennogo_intellekta.html#0 И.Братко. Программирование на языке Пролог для искусственного интеллекта]
 +
* [http://www.litportal.kiev.ua/2007/02/16/ivan_bratko_algoritmy_iskusstvennogo_intellekta_na_jazyke_prolog.html И.Братко. Алгоритмы искусственного интеллекта на языке PROLOG]
 +
 
[[Category:Школа системного администратора]]
 
[[Category:Школа системного администратора]]
 
[[Category:Руководство разработчика]]
 
[[Category:Руководство разработчика]]

Текущая версия на 13:00, 2 августа 2017

Содержание



[править] Система логического программирования на встроенном SWI‑Prolog

[править] Файлы и ресурсы

Расположение файлов см. Список файлов дистрибутива платформы Гедымин

[править] Системные файлы DLL

Имя Описание Примечание
libswipl.dll библиотека ядра The Prolog kernel
pthreadGC2.dll библиотека потоков выполнения POSIX thread runtime library (32-bits)
libgmp-10.dll библиотека арифметики повышенной точности The GNU Multiple Precision Arithmetic Library

[править] Файлы DLL для расширения системы (плагины)

Имя Описание Примечание
memfile.dll библиотека временных файлов в памяти Memory files
readutil.dll библиотека утилиты быстрого чтения Reading lines, streams and files

[править] Ресурсные архивы

Имя Описание Примечание
gd_pl_state.dat файл сохраненного состояния Generating Runtime Applications

[править] Для разработчиков

Ссылка на ресурс Описание
gd_pl.pl генерация файла сохраненного состояния
gd_pl_state папка с файлами для сохраненного состояния, не входящими в стандартную поставку SWI-Prolog

PL-классы

Под термином PL-класс понимается класс, предназначенный на для взаимодействия со встроенным SWI‑Prolog.
Соответственно, экземпляр PL-класса будет называться PL‑объект.

TgsPLClient

Класс клиента SWI-Prolog.
Иерархия
TObject
Методы
Initialise(AParams: String): Boolean
Инициализация SWI-Prolog.
IsInitialised: Boolean
Проверка инициализации SWI-Prolog.
Call(APredicateName: String; AParams: TgsPLTermv): Boolean
Краткая форма для OpenQuery, NextSolution, Cut объекта TgsPLQuery, порождающая одно решение.
Call2(AGoal: String): Boolean
Выполнение терма (аналог предиката once/1).
Cleanup: Boolean
Очистка SWI-Prolog (деинициализация).
Compound(AGoal: Unsigned short; AFunctor: String; ATermv: TgsPLTermv)
Компоновка терма из функтора (имени терма) и аргументов (вектора термов).
LoadScript(AScriptID: Integer): Boolean
Загрузка Пролог-скрипта по идентификатору.
LoadScriptByName(AScriptName: String): Boolean
Загрузка Пролог-скрипта по имени.
ExtractData(ADataSet: TClientDataSet; APredicateName: String; ATermv: TgsPLTermv)
Извлечение данных Пролог-запроса в клиентский набор данных.
MakePredicatesOfSQLSelect(ASQL: String; ATr: TIBTransaction; APredicateName: String; AFileName: String; AnAppend: Boolean): Integer
Формирование Пролог-фактов на основе SQL-запроса.
MakePredicatesOfDataSet(ADataSet: TDataSet; AFieldList: String; APredicateName: String; AFileName: String; AnAppend: Boolean): Integer
Формирование Пролог-фактов на основе клиентского набора данных.
SavePredicatesToFile(APredicateName: String; ATermv: TgsPLTermv; AFileName: String)
Выгрузка данных Пролог-запроса в файл.
Свойства
Debug: Boolean
Режим отладки.

TgsPLQuery

Класс запроса SWI-Prolog.
Иерархия
TObject
Методы
Close
Закрытие Пролог-запроса.
Cut
Отсечение следующих решений Пролог-запроса (выполнения предиката).
NextSolution
Поиск следующего решения Пролог-запроса (выполнения предиката).
OpenQuery
Открытие Пролог-запроса и поиск первого решения (выполнение предиката).
Свойства
Eof: Boolean
Признак поиска решения Пролог-запроса (выполнения предиката).
PredicateName: String
Имя предиката (функтор).
Termv: TgsPLTermv
Аргументы предиката (вектор термов).

TgsPLTermv

Класс вектора термов SWI‑Prolog.
Иерархия
TObject
Методы
PutAtom(Idx: Unsigned short; AValue: String)
Передача по ссылке в терм данных типа Atom.
PutDate(Idx: Unsigned short; AValue: Date)
Передача по ссылке в терм данных типа Date.
PutDateTime(Idx: Unsigned short; AValue: Date)
Передача по ссылке в терм данных типа DateTime.
PutFloat(Idx: Unsigned short; AValue: Real)
Передача по ссылке в терм данных типа Float.
PutInt64(Idx: Unsigned short; AValue: Int64)
Передача по ссылке в терм данных типа Int64.
PutInteger(Idx: Unsigned short; AValue: Integer)
Передача по ссылке в терм данных типа Integer.
PutString(Idx: Unsigned short; AValue: String)
Передача по ссылке в терм данных типа String.
PutVariable(Idx: Unsigned short)
Передача по ссылке в терм данных типа Variable (сброс ссылки в изначальное состояние).
ReadAtom(Idx: Unsigned short): String
Считывание по ссылке из терма данных типа Atom.
ReadDate(Idx: Unsigned short): Date
Считывание по ссылке из терма данных типа Date.
ReadDateTime(Idx: Unsigned short): Date
Считывание по ссылке из терма данных типа DateTime.
ReadFloat(Idx: Unsigned short): Real
Считывание по ссылке из терма данных типа Float.
ReadInt64(Idx: Unsigned short): Int64
Считывание по ссылке из терма данных типа Int64.
ReadInteger(Idx: Unsigned short): Integer
Считывание по ссылке из терма данных типа Integer.
ReadString(Idx: Unsigned short): String
Считывание по ссылке из терма данных типа String.
Reset
Сброс вектора термов (выполнение метода PutVariable для всего вектора термов).
ToString(Idx: Unsigned short): String
Считывание по ссылке терма и преобразование к строке.
ToTrimQuotesString(Idx: Unsigned short): String
Считывание по ссылке терма и преобразование к строке без обрамляющих кавычек.
Свойства
DataType(Idx: Unsigned short): Integer
Тип данных.
Size: Unsigned short
Размер вектора термов.
Term(Idx: Unsigned short): Unsigned short
Ссылка на терм.

[править] Пролог-скрипты

Pl_Examples_Script.png

[править] Примеры использования PL-объектов

Pl_Examples.png

[править] Учебный пример. Игра крестики-нолики

Xo_game15o9.png

[править] Средства разработки

[править] SWI-Prolog Editor

SWI-Prolog_Editor.png

[править] SWI-Prolog graphical tracer

Swi_graphical_tracer.png

[править] SWI-Prolog profiler

Swi_profiler.png



[править] Литература по языку Пролог

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты