Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
2 / 2 / 1
Регистрация: 21.09.2013
Сообщений: 76
1

Ошибка с базами данных Undeclared predicate, misspelling or not supported on chosen platform assert

17.11.2014, 14:10. Показов 4472. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
database-languages
    language(string)
 
clauses
assert(language("Italian")).
assert(language("Japanese")).
assert(language("English")).
assert(language("French")).
assert(language("German")).
 
goal
retract(X, languages), write(X), fail.
Вот такая программка, наблюдаю ошибки на всех assert:
This name is reserved for a standard predicate (on the selected platform): assert
Undeclared predicate, misspelling or not supported on chosen platform assert

Подскажите чём проблема?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2014, 14:10
Ответы с готовыми решениями:

Undeclared predicate, misspelling or not supported on chosen platform length
Здравствуйте! Помогите, пожалуйста, исправить ошибку. Задача: заменить K элементов с конца на...

Ошибка на сайте: The file Cache Storage is not supported on this platform?
Ошибка на сайте: The file Cache Storage is not supported on this platform? Как можно...

PyAudio ERROR: PyAudio-0.2.11-cp27-cp27m-win32.whl is not a supported wheel on this platform
Хочу установить Pyaudio на винду 10. Устанавливаю файл через сайт...

Ошибка в коде с базами данных
Не хочет запускаться , я вот не могу понять тут вроде надо класс прописать, а какой не знаю пишет:...

3
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
17.11.2014, 14:57 2
Лучший ответ Сообщение было отмечено vovkasm как решение

Решение

Надо перенести Ваши assert в правую (исполняемую) часть правила.

Например, так:
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
predicates
init
 
database-languages
    language(string)
 
clauses
init :-
    assert(language("Italian")),
    assert(language("Japanese")),
    assert(language("English")),
    assert(language("French")),
    assert(language("German")).
 
goal
init, retract(X, languages), write(X), fail.
1
2 / 2 / 1
Регистрация: 21.09.2013
Сообщений: 76
17.11.2014, 15:45  [ТС] 3
Black Fregat, т.е. все assert, asserta и т.д. работают только в исполняемой части. Спасибо за ответ, помог!
0
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
17.11.2014, 20:56 4
Цитата Сообщение от vovkasm Посмотреть сообщение
все assert, asserta и т.д. работают только в исполняемой части.
Ну да, причём они должны быть реально выполнены. Уберёте init из цели - база будет пустой. Поставите 2 раза - факты продублируются.

Добавлено через 4 часа 25 минут
Это примерно так же, как располагать write, если такая аналогия лучше поможет
0
17.11.2014, 20:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2014, 20:56
Помогаю со студенческими работами здесь

This predicate is declared as DB predicate
Среда разработки: Turbo Prolog Исходный код программы: DOMAINS carBrands, ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru