[Закрыть]
 
popoff.donetsk.ua
Стандарты заставляют верить, что это круто, стильно, современно.
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Форум - Функциональное и логическое программирование - Индивидуалка по Прологу (представление БД в виде рекурсивной структуры)

Индивидуалка по Прологу (представление БД в виде рекурсивной структуры)

форумы popoff.donetsk.ua
Страницы: [1]
<< Новый  |  Старый >>  |  Ответ не возможен

Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.

Автор Сообщение
coffee
Юлия
Окт, 2008
Сообщений: 7
coffee url://forum.message:2978
Индивидуалка по Прологу (представление БД в виде рекурсивной структуры)

В разделе domains определяю следующие типы:
domains
pr = production_1(string, real, real, real, string, pr)
ppr = production(string, real, real, real, string)

Выдает ошибку в формулировке запроса: 506 Type error: The functor does not belong to the domain
predicates
one_struct(ppr, pr)

goal
one_struct (production(coal, X, Y, Z, E),
production_1(coal, 45.2, 38.5, 49.7, mln. t,
production_1(raw oil, 392.6, 328.4, 372, th. t,
production_1(electricity, 30.4, 44.9, 79.9, mlrd. kv-h,
production_1(iron ore, 601.9, 825.7, 2004, th. t,
production_1(copper, 86.7, 84.7, 123.7, th. t,
production_1(sulfuric acid, 3.5, 3.2, 3.8, mln. t,
production_1(cement, 6.1, 4.4, 14.9, mln. t, nil)))))))),    // собственно ругается в этой строчке на nil
write(X, ), write(Y, ), write(Z, ).

Подскажите, как правильно описать домен? Или что нужно написать вместо nil?

popoff
Yuri
Июл, 2004
Сообщений: 932
popoff url://forum.message:3001

Нужно сказать, что структура pr имеет два варианта, один из которых рекурсивно ссылается сам на себя (production_1), а второй вместо рекурсивной ссылки содержит произвольное слово (это может быть, к примеру, слово nil) - назовём этот вариант production_2. Ваша программа поменяется примерно так:

domains
  pr = production_1(string, real, real, real, string, pr);production_2(string, real, real, real, string, symbol)
...
goal
one_struct (production("coal", X, Y, Z, E),
.....
production_1("sulfuric acid", 3.5, 3.2, 3.8, "mln. t",
production_2("cement", 6.1, 4.4, 14.9, "mln. t", nil)))))))),
...
________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
coffee
Юлия
Окт, 2008
Сообщений: 7
coffee url://forum.message:3003

Спасибо, уже разобралась, сдала, 5 получила=)

Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.

Страницы: [1]
<< Новый  |  Старый >>  |  Ответ не возможен
Вход
Поиск[?]:
porter.mir.dn.ua