Публикации по теме '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 просмотров
schedule
15.08.2022
пролог: исправление нескольких ответов (используя 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