![]() |
|
![]() ![]() ![]() |
|
dodikk |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 9.10.2008 Репутация: нет Всего: нет |
Доброго времени суток.
Подскажите пожалуйста, как подключить модуль в SWI prolog. Модуль представляет собой файл с исходными текстами. Это могут быть как базы данных (набор фактов), так и собственно процедуры. В мануалах по SWI Prolog не нашел ничего на эту тему (или нашел, но неверно применил). Пробовал сделать так : ///////////////////////////////////////////////////////// Europe.pro : ------------------- load_files('bordersDataBase.pro'). load_files('ListUtils.pro'). bordersOn(LCountry, RCountry) :- borders_on(LCountry, RCountry); borders_on(RCountry, LCountry). ///////////////////////////////////////////////////////// Предикат borders_on описан в файле bordersDataBase.pro. При попытке вызова bordersOn('Russia', 'Ukraine'). выводит следующее : ?- consult('Europe.pro'). ERROR: (/home/dodikk/Programming/prolog/Europe/Europe/src/Europe.pro:5): No permission to modify static_procedure `load_files/1' ERROR: (/home/dodikk/Programming/prolog/Europe/Europe/src/Europe.pro:6): No permission to modify static_procedure `load_files/1' Warning: (/home/dodikk/Programming/prolog/Europe/Europe/src/Europe.pro:100): Singleton variables: [Previous] Warning: (/home/dodikk/Programming/prolog/Europe/Europe/src/Europe.pro:102): Singleton variables: [TempPath] % Europe.pro compiled 0.01 sec, 2,308 bytes Yes ?- [1] ?- bordersOn('Russia', 'Ukraine'). ERROR: Unhandled exception: bordersOn/2: Undefined procedure: borders_on/2 ERROR: However, there are definitions for: ERROR: bordersOn/2 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ При использовании consult вывод такой же. При использовании include 'bordersDataBase.pro' ERROR: /home/dodikk/Programming/prolog/Europe/Europe/src/Europe.pro:4:0: Syntax error: Operator expected Warning: (/home/dodikk/Programming/prolog/Europe/Europe/src/Europe.pro:101): Singleton variables: [Previous] Warning: (/home/dodikk/Programming/prolog/Europe/Europe/src/Europe.pro:103): Singleton variables: [TempPath] % Europe.pro compiled 0.00 sec, 2,360 bytes Собственно, на инклюд и ругается. Что я делаю неверно? Заранее благодарен. Добавлено через 6 минут и 40 секунд Файлы лежат в одной и той же директории. Правильность имен файлов проверил. |
|||
|
||||
dodikk |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 9.10.2008 Репутация: нет Всего: нет |
Разобрался.
consult нужно писать внутри других предикатов. Или просто в интерпретатор. Перед работой с проектом нужно написать что-то вроде : consult('Loader.pro'). %% Это файл, в котором прописаны все нужные consult loadLibraries. %% прописаны они собственно в теле этого предиката. Предикат и файл Loader называйте произвольно. Спасибо за внимание. |
|||
|
||||
![]() ![]() ![]() |
Правила форума Prolog | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Prolog | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |