Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 34

Как правильно записать предикаты?

30.10.2010, 18:48. Показов 2240. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
допустим имеем следующее
Prolog
1
2
3
4
5
6
7
8
9
10
DOMAINS
name=string
PREDICATES
elder(name,name)                  /*X старше Y*/
eldest(name)                        /*X самый старший*/
CLAUSES
elder("M1", "M2").
elder("M2", "M3").
elder("M3", "M4").
eldest("M5").
как правильно задать предикаты elder и eldest?
я попробовал вариант
Prolog
1
2
elder(X,Y) :-
elder(X,Z), elder(Z,Y).
но при запросе elder("M3", "M3") вылетает ошибка stack overflow
я пока в прологе новичок, так что может чего с логикой напутал где.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.10.2010, 18:48
Ответы с готовыми решениями:

Встроенные предикаты. Предикаты взаимодействия, размещение данных
Есть три вопроса: С равенством разобрался, вроде ничего сложного. Про предикаты нашел много инфы, но про предикаты взаимодействия и...

Как правильно записать опоздание функции через функцию-ножницы, если t!=0 при t>4? Как правую часть записать?
Нужно найти изображение оригинала. Всю суть проблемы написал в заголовке.

Правильно ли я использую предикаты в List.FindAll
Добрый день, есть задача отфильтровать список объектов по заранее неизвестному списку условий. Класс MyFilter описывает одно условие. ...

4
411 / 330 / 42
Регистрация: 10.03.2010
Сообщений: 3,313
30.10.2010, 19:55
Так у тебя эти предикаты- факты или правила?
0
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 34
30.10.2010, 20:57  [ТС]
правила) и да, спасибо, я уже разобрался в чем тупанул)
тогда тут же вопрос посложнее уже)
может на форуме уже решалась подобная задача. пример простенького транслятора на прологе (ну к примеру я пишу в запросе "John elder Mary", а пролог записывает это как факт elder_0("John", "Mary") и если я пишу потом запрос "? John elder Mary" пролог должен быдать ответ Yes)
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
30.10.2010, 21:15
В прологе есть предикаты для работы с базами данных. assert добавляет факт в базу. Т.е если вы введете assert(elder("John","Mary")), то потом на запрос elder("John","Mary") будет выдаваться yes.
1
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 34
30.10.2010, 21:30  [ТС]
это да
но насколько я понимаю для того случая, который я описал мне нужен не только assert, но и некий парсер, который определяет как раз будет переделывать фразу John elder Mary в elder("John", "Mary")
и который также будет определять по наличию знака вопроса - нужно ли занести это как факт или же это вопрос. вот пример такой парсилки (или в принципе работы с текстом, ввод, вывод, сравнение) если где-то есть у кого.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.10.2010, 21:30
Помогаю со студенческими работами здесь

Ввести одноместные предикаты и записать высказывания
На множестве всех чисел введите необходимые одноместные предикаты и запишите с их помощью следующее высказывание: "Любое число,...

Сформулировать предикаты и записать их в виде формулы логики - для теоремы
Признак параллельности прямой на плоскости. Две прямые в трехмерном пространстве называются параллельными, если они лежат в одной...

Записать приведенные ниже утверждения в символической форме, введя предикаты
Помогите пожалуйста записать утверждение в символической форме, введя предикаты. В случае необходимости указать предметную область. 1)...

Сформулировать теоремы. Ввести необходимые предикаты и записать их в виде формулы логики предикатов
1 Один из признаков параллельности прямых на плоскости. 2 Первый признак равенства треугольников. 3 Первый признак подобия...

Как правильно записать?
Записываю интеграл как есть ,а он выдаёт странное решение,помогите, как правильно записать?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru