Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подключение модулей в SWI Prolog, модуль с исходными текстами 
V
    Опции темы
dodikk
Дата 9.10.2008, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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 секунд
Файлы лежат в одной и той же директории.
Правильность имен файлов проверил.
PM MAIL   Вверх
dodikk
Дата 29.11.2008, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.10.2008

Репутация: нет
Всего: нет



Разобрался.

consult нужно писать внутри других предикатов. 
Или просто в интерпретатор.

Перед работой с проектом нужно написать что-то вроде :

consult('Loader.pro').  %% Это файл, в котором прописаны все нужные consult
loadLibraries.              %% прописаны они собственно в теле этого предиката. 

Предикат и файл Loader называйте произвольно.

Спасибо за внимание.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума Prolog
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Prolog | Следующая тема »


 




[ Время генерации скрипта: 0.0782 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.