prolog

Я пытаюсь найти максимальное число в списке. Я знаю, что есть несколько решений, доступных в интернете, но я чувствую, что лучший способ научиться-это реализовать их самостоятельно. Я написал следующий код: max([X],X). max([H|T],Res):- ( H >= Res -> max(T,Res1), Res1 = H ; max(T,Res) ...

Вот простое отношение CLPFD: 1 #= 81 mod X. Это возвращает: X in inf.. -1/1..sup, 81 mod X#=1. Если моя математика полностью неверна, не должна ли область X быть -80.. -1/1..80?...

У меня есть этот список (читать из файла): [a-3,a-2, a-1, b-3, b-2, b-1, c-3, c-2, c-1,end_of_file] Также у меня есть следующие предикаты: % ipo(A,B) -> A is preferred over B ipo(end_of_file, _). ipo(c-3,a-3). ipo(c-3,b-3). ipo(c-3,b-2). ipo(a-2,c-3). ipo(a-2,b-2). % gr(A,B) -> A is better than B |...

Мне нужно найти элементы, которые существуют в обоих списках S1 и S2, и мне нужно распечатать эти элементы (R). Проблема в том, что когда я набираю bendri([a,b,c,d],[d,b,e],R), он возвращает правильный результат [b,d], но не останавливается. Если вы нажмете; символ, то он продолжает проверку снова и возвращае...

ИспользуяAllegrograph , функторы пролога довольно удивительны, но есть один недостаток. Предположим, вы определяете функтор, который связывает две сущности, например parentOf , который равен "!Н: мать или !Н: ... папа", которые являются как свойства объекта РДФ, определенных в онтологии (не функторов). Д...

Когда я недавно просматривал некоторые вопросы, связанные спрологом , я наткнулся наэтот ответ @mat на вопрос, Как представить направленный циклический граф в прологе с прямым доступом к соседним вертикалям . До сих пор мой личный опыт работы с атрибутивными переменными в прологе был очень ограничен. Но пр...

Я пишу частичный оценщик для запросов пролога. Я попытался расширить запрос с помощью expand_goal/2, но он просто объединяет Input с Output в этом случае: :- initialization(main). main :- Input=is_between(1,A,3),expand_goal(Input,Output),writeln(Output). is_between(A,B,C) :- B>A,B<C. Я такж...

Я не могу ясно понять использование cut. Например, в этом случае: сплющить , это действительно нужно? Он работает для меня даже без обоих предикатов cut (я пытался удалить). Каковы случаи, которые могут вызвать отступление, идущее к разрезу? Удаление разрезов у вас есть такая же реализация книги" Искусство пр...

Я читал много статей, пытаясь понять разницу между функциональным и логическим программированием, но единственный вывод, который я смог сделать до сих пор, заключается в том, что логическое программирование определяет программы через математические выражения. Но такая вещь не связана с логическим программиров...

Я начал изучать Пролог и задаваться вопросом о теоретическом отличии от языка SQL. например: оба языка являются декларативными оба поддерживают базу данных знаний на основе фактов оба поддерживают вопрос стиле данных-извлечение оба поддерживают функциональные зависимости есть еще общие моменты? Какие-ниб...