Публикации по теме 'prolog'


Рекурсивное мышление на Прологе
Декларативное выражение рекурсии… Большинство программистов знакомы с рекурсией, по крайней мере, на каком-то уровне. В императивных языках рекурсия обычно не требуется для простых алгоритмов, которые могут использовать циклические операторы потока управления, определенные в языке. В чисто функциональных языках, где конструкции циклов недоступны, рекурсия необходима для выполнения любого алгоритма цикла. Как и в чисто функциональном языке, в Прологе нет циклических конструкций,..

Решение IQ-тестера с помощью Пролога
Недавно я обнаружил канал Криса Рамзи на YouTube . Он волшебник. На своем канале он решает сумасшедшие головоломки, среди прочих магических вещей. В этом видео Крис пытается победить IQ Tester. IQ Tester — простая настольная игра. Это треугольник с 15 возможными положениями. Игра начинается следующим образом: каждая позиция занята фишкой; Во-первых, вы бросаете один колышек на свой выбор. Затем вы должны попытаться получить минимальное количество колышков, прыгая по прямой..

Вопросы по теме 'prolog'

сумма хвостовой рекурсии, мощность, gcd в прологе?
как я могу это сделать: Дайте определение хвостовой рекурсии для каждого из следующих предикатов. power(X,Y,Z) : XY=Z. gcd(X,Y,Z) : Наибольший общий делитель X и Y равен Z. sum(L,Sum) : Сумма — это сумма элементов в Л. до сих пор я сделал...
2392 просмотров

пролог: исправление нескольких ответов (используя cut?)
я подсчитываю количество экземпляров в списке... count(_,[],N,N). count(Elem,[Elem|List],N,M) :- !, N1 is N+1, count(Elem,List,N1,M). count(Elem,[_|List],N,M) :- count(Elem,List,N,M). Итак, я написал это двумя способами в прологе, и первый...
1163 просмотров
schedule 06.11.2023

списки пролога и манипулирование списками
я пытаюсь написать двоичный предикат, чтобы взять один список, вычислить мод 5 для каждого элемента, а затем поместить его в другой список. до сих пор я сделал это, mod5(X,L):- R = [], modhelper(R,L), write(R). modhelper(X,L):- memb(E,L),...
1985 просмотров
schedule 10.09.2022

Почему SWI-Prolog объединяет строки в кавычках и без кавычек (без пробелов) по одному и тому же правилу?
Предположим, у меня есть следующие правила: unify('test', 'this is a test'). run :- write('Enter something: '), read(X), unify(X, Y), write('The answer is '), write(Y). И затем я запускаю его следующим образом: ?-...
967 просмотров
schedule 31.12.2023

проблема gnuprologjava
Я использую http://www.gnu.org/software/gnuprologjava/ для выполнения пролога материал из Java-приложения. В этом контексте я размещаю следующий файл пролога: /* ghoul is a prolog fact representing the goal state in flat notation */...
170 просмотров
schedule 21.09.2022

GNU Prolog — поиск в списке фактов
Должно быть, у меня пукнул мозг или что-то в этом роде, но я просто не могу найти решение этой проблемы. Если у вас есть список фактов, таких как: %country(country, population, capital) country(sweden, 8823, stockholm). country(usa, 221000,...
1651 просмотров
schedule 03.03.2024

Как совместить PHP и Prolog
Я пытаюсь вызвать Prolog с помощью скрипта PHP. Я использую синтаксис, который нашел здесь , а именно: $cmd = "nice -n15 /software/bin/pl -f /home/popx/cgi-bin/test.pl -g test,halt"; Программа /bin/pl - это место, где у меня установлен...
1956 просмотров
schedule 22.11.2023

Понимание правил - ложь как ответ
Я новичок в Prolog, и я просто подумал, почему это правило дает мне ложный результат после одного истинного. likes(1,banana). likes(1,mango). test :- likes(1,banana),likes(1,mango). ?- test. true; false. Я хочу знать причину...
5247 просмотров
schedule 20.09.2022

Как динамически установить домен для списка
например, я создаю список после length(List,5), List :: 1..5, Я хочу установить второй элемент списка, он выглядит как List[1] :: 1..2 %List, от 0 до 4 Я не знаю, как это понять? Спасибо большое :)
223 просмотров
schedule 20.03.2024

перемещение по списку
Изучая это очень медленно ... сегодня получил несколько книг, и они просто отстой ... Итак.. Я пытаюсь переместить позицию X по списку.. затем вернуть оставшуюся часть списка. Проблема в том, что я возвращаю просто элемент в этой позиции, а не...
624 просмотров
schedule 10.03.2024

Модульное тестирование в XSB Prolog?
Как люди, работающие с XSB Prolog, проводят модульное тестирование? Есть ли доступная библиотека? Или можно как-то использовать библиотеку SWI-Prolog plunit в XSB? Если нет доступной библиотеки тестирования для XSB (или других прологов, не...
324 просмотров
schedule 16.08.2022

Найти все решения предиката
Я пытаюсь определить предикат, который получает один термин со свободными переменными и возвращает список сопоставлений этих переменных, например, если база данных a(0,1). a(1,1). ожидаемый результат будет ?- eval(a(X,1),Maps). Maps =...
1910 просмотров
schedule 03.11.2022

Пролог возвращает список дубликатов
Я получаю дублированный список, когда пытаюсь найти все/3 возможных пути на графике? Есть идеи, что не так с кодом? Схема дублирования: S:6 дублируется с S:13, S:7 с S:14, S:8 с S:15 и так далее. co(X,Y) :- hen(X,Y) ; hen(Y,X). pan(A, B, _,...
1173 просмотров
schedule 06.12.2023

Как прочитать файл в SWI Prolog?
Я хочу прочитать файл, который будет содержать имена в каждой строке. И я не знаю, как это сделать с помощью SWI Prolog. У меня есть достаточные знания C/C++, так что есть ли способ сделать то же самое с Prolog?
1425 просмотров
schedule 31.03.2024

операции над элементами внутри списков в прологе
Я пишу код пролога, и в середине я хочу проверить, все ли элементы в списке не включены в определенный предикат Here is the code: trap(a). trap(b). not_trap([A|B]):- \+trap(A), not_trap(B). not_trap(B):- \+trap(B). но это не сработает,...
146 просмотров
schedule 01.08.2022

унифицированные элементы возврата swi prolog в списке
Я хочу вернуть все элементы в списке, как показано ниже в X ?return_list_members([1,2,3,4,5], X). X = 1 ; X = 2 ; X = 3 ; X = 4 ; X = 5. У меня есть следующий код, но он также возвращает пустой элемент списка [], который нежелателен ....
1364 просмотров
schedule 19.10.2023

Удаление элемента или списка в SWI-Prolog
Еще проблема, у меня есть хорошая рабочая "функция" для удаления: remove([],X,[]) :- !. remove([X|T],X,L1) :- !, remove(T,X,L1). remove([H|T],X,[H|L1]) :- remove(T,X,L1). Но это не работает так, как я хочу, чтобы это работало. Он...
7487 просмотров
schedule 04.04.2024

Как указать все пары в заданном списке на Прологе?
Получив список, я хотел бы вычислить все возможные комбинации пар в списке. например 2) ввод представляет собой список (a,b,c) Я хотел бы получить пары (a,b) (a,c) (b,c) например 1) ввод представляет собой список (a,b,c,d) Я хотел бы получить...
3664 просмотров
schedule 27.04.2024

Различные результаты запроса в прологе
У меня вопрос по прологу. Вот База Знаний. loves(vincent,mia). loves(marcellus,mia). loves(pumpkin,honey_bunny). loves(honey_bunny,pumpkin). jealous(X,Y) :- loves(X,Z), loves(Y,Z). Это из книги " Изучите Prolog сейчас ". Теперь, если...
192 просмотров
schedule 16.10.2022

Пролог - повторно загрузить консультацию ('имя файла') в интерпретатор
После загрузки файла pl в SWI-Prolog с помощью consult('filename') как я могу повторно загрузить его с помощью клавиатуры? Я читал, что это возможно с ctr b , но это не работает. Я использую SWI-Prolog версии 6.2.6.
580 просмотров
schedule 12.10.2022