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

Задача о птицах, наследование. 506 Type Error: The functor does not belong to the domain

11.09.2018, 20:10. Показов 5160. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создать программу, которая описывает предметную область, отображенную на рисунке (рисунок прикреплен) с помощью фрейма и реализуйте механизм наследования Prolog.
Текущий код программы:
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
DOMAINS
Object=symbol
Prop=travel(symbol);color(symbol);sound(symbol);size(symbol)
list_of_properties=Prop*
name=name(Object)
isa=isa(Object)
PREDICATES
frame(name,isa,list_of_properties,list_of_properties)
get(Prop,Object)
nondeterm member(prop,list_of_properties)
CLAUSES
member(X,[X|_]).
member(X,[_|T]):-member(X,T).
frame(name(bird),isa(animal),[travel(flies)],[]).
frame(name(ostrich),isa(bird),[travel(walk)],[]).
frame(name(penguin),isa(bird),[color(brown)],[travel(walks)]).
frame(name(opus),isa(penguin),[],[]).
frame(name(robin),isa(bird),[color(red)],[sound(sing)]).
frame(name(canary),isa(bird),[color(yellow),sound(sing)],[size(small)]).
frame(name(tweety),isa(canary),[],[color(white)]).
get(Prop,Object):-frame(name(Object),_,list_of_properties,_),member(Prop,list_of_properties).
get(Prop,Object):-frame(name(Object),_,_,list_of_properties),member(Prop,list_of_properties).
get(Prop,Object):-frame(name(Object),isa(Parent),_,_),get(Prop,Parent).
GOAL
get(color(white),object).

ОШИБКА:
506 Type Error: The functor does not belong to the domain

В чем может быть проблема? Заранее спасибо!
P.S.: сомневаюсь в объявлении Prop
Миниатюры
Задача о птицах, наследование. 506 Type Error: The functor does not belong to the domain  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.09.2018, 20:10
Ответы с готовыми решениями:

Ошибки Pow: Domain error и Log10: Domain error
Здравствуйте, возникла проблема, при компиляции программы выдаёт ошибки, указанные в заголовке,...

Выдаёт ошибку: acos DOMAIN error,полсе нажатия окей,ещё одну ошибку pow OWERFLAW ERROR
Здравствуйте! подскажите пожалуйста где ошибка в коде. Выдаёт ошибку: acos DOMAIN error,полсе...

Ошибка run-rime error M6201 : Math "sqrt : DOMAIN error"
Дополняю расчетную программу на фортране, основанную на работе с массивами. При дополнении был...

Ошибка 512: Type error wrong type object, как исправить?
При записи |NewTail] компилятор пролог выдаёт ошибку 512 Type error wrong type object, подскажите...

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

Решение

Вы запутались, где символы и функторы, а где имена переменных.
Имена переменных нужно писать с большой буквы.
Здесь:
Prolog
1
2
get(Prop,Object):-frame(name(Object),_,List_of_properties,_),member(Prop,List_of_properties).
get(Prop,Object):-frame(name(Object),_,_,List_of_properties),member(Prop,List_of_properties).
И здесь:
Prolog
1
get(color(white),Obj).
Добавлено через 1 минуту
Код
Obj=tweety
1 Solution
1
0 / 0 / 0
Регистрация: 11.09.2018
Сообщений: 4
12.09.2018, 16:04  [ТС] 3
Спасибо огромное!
0
12.09.2018, 16:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2018, 16:04
Помогаю со студенческими работами здесь

Log Domain error
Поясните начинающему программисту эту ошибку??? вот код программы, и почему эта ошибка при...

sqrt: DOMAIN error
Здравствуйте! Нам задали написать программу для вычесления периметра триугольника, я написал но при...

Log domain error
Значения s1 = 1.05, s2 = 1.4; n = 15. Как я понял эта ошибка возникает когда выражение под...

Math domain error
Не понимаю в чем может быть проблема, при обращении к функции def function(x): return...

Type error: Illegal variable type for this position
Нужно разделить список на два списка: в первом - N элементов с начала исходного списка, во втором -...

Error: array type has incomplete element type
в функции выдает ошибку \arifm.c|4|error: array type has incomplete element type| подправьте...


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

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