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

Устранение последовательных дубликатов
Устранение последовательных дубликатов элементов списка. Мое решение для этого: compress([X,X|Xs], Q) :- compress([X|Xs], Q). compress([X,Y|Xs], Q) :- X \= Y, compress([Y|Xs], QR), append([X], QR, Q). compress([X|[]], Q) :-...
386 просмотров
schedule 28.10.2021

Выразителен ли почти чистый Пролог?
@ false прокомментировал ранее : Да, вы можете реализовать машину Тьюринга без dif/2 . Но вы даже не можете реализовать пересечение или аналогичные предикаты. Предположим, мы расширяем чистый Пролог ( Horn FOL + CWA + UNA ) с...
536 просмотров

Решение текстовой логической головоломки в Prolog - Найдите день рождения и месяц
Я читаю книгу «7 языков за 7 дней» и дошел до главы «Пролог». В качестве обучающих упражнений я пытаюсь решить некоторые текстовые логические головоломки. Головоломка выглядит следующим образом: У пяти сестер день рождения в разном месяце и у...
3796 просмотров
schedule 18.03.2022

Пролог: проверка дубликатов в списке
Напишите предикат allDistinct/1 , параметром которого является список (символов) и который успешен, если все символы в списке различны. notin(A,[]). notin(A,[B|C]) :- A\=B, notin(A,C). allDistinct([]). allDistinct([_])....
2385 просмотров
schedule 23.03.2022

Удалить только уникальные элементы
Существует много ресурсов о том, как удалить дубликаты и подобные проблемы, но я не могу найти ни одного по удалению уникальных элементов. Я использую SWI-Prolog, но не хочу использовать встроенные модули для достижения этой цели. То есть вызов...
198 просмотров
schedule 08.04.2022

Использование \ == / 2 или dif / 2
Если я хочу убедиться, что две переменные не соответствуют одному и тому же термину, каков предпочтительный способ сделать это? Скажем, мне нужно найти ориентированные ребра в графе, а у узла не может быть ребра самому себе: node(a, x, y)....
2304 просмотров
schedule 25.07.2022

Пролог: получить противоположный результат
У меня есть следующий код: neighbor(C1, C2, [C1, C2|L]). neighbor(C1, C2, [C2, C1|L]). neighbor(C1, C2, [H|L]) :- neighbor(C1, C2, L). not_neighbors(C5, C2, E, R) :- not_neighbor(C5, C2, E). not_neighbors(C5, C2, E, R) :-...
797 просмотров
schedule 05.08.2022

Пролог: первое повторяющееся значение
Мне нужно найти первое повторяющееся значение в списке. prep(3,[1,3,5,3,5]). Должно быть правдой. prep(5,[1,3,5,3,5]). Должно быть ложным. Я думал проверять равенство с текущим значением и предыдущими членами списка, пока не найду...
3188 просмотров
schedule 31.03.2023

Ошибка пролога без причины
Я создал следующий скрипт, однако он выдает мне ошибку, хотя с моей точки зрения он совершенно правильный. Что может быть причиной этого? remove_repeats([],[]). remove_repeats([X],[X]). remove_repeats([X,X],[X])....
208 просмотров
schedule 29.06.2023

фильтровать список в отдельные списки
Мне нужно отфильтровать список [#,d,e,#,f,g] таким образом, чтобы я получал вывод как [[d,e],[f,g]] , Я застреваю при создании нового списка каждый раз, когда встречаю '#'. Есть ли способ сделать это? Я попробовал код ниже, filterL([],List)...
223 просмотров
schedule 12.05.2023

Пролог: поиск, если 2 элемента в списке встречаются одинаково
Я новичок в Прологе и не являюсь носителем языка, поэтому, если вы меня не понимаете, извините. Мой вопрос: как я могу узнать, отображаются ли a и b из списка одинаково? Например, [a,a,b,b] должно дать мне true , но если одно из них...
601 просмотров
schedule 05.02.2023

Самый длинный общий префикс (LCP) списка строк
lcs([ H|L1],[ H|L2],[H|Lcs]) :- !, lcs(L1,L2,Lcs). lcs([H1|L1],[H2|L2],Lcs):- lcs( L1 ,[H2|L2],Lcs1), lcs([H1|L1], L2 ,Lcs2), longest(Lcs1,Lcs2,Lcs), !. lcs(_,_,[]). longest(L1,L2,Longest) :- length(L1,Length1),...
1674 просмотров

Как реализовать предикат not_all_equal/1
Как можно реализовать предикат not_all_equal/1 , который будет успешным, если данный список содержит как минимум 2 разных элемента, и потерпит неудачу в противном случае? Вот моя попытка (не очень чистая): not_all_equal(L) :- (...
169 просмотров

Что никогда не бывает равным самому себе?
Есть ли в Прологе ценность, отличная от самой себя? Я пишу ответ на некоторый вопрос о min дерева , и в этом ответе также говорится, что если дерево пусто, min равно нулю. Сначала звучит хорошая идея, но теперь, когда я думаю, это звучит как...
127 просмотров
schedule 11.08.2023

Пролог-запрос возвращает H128
В приведенном ниже запросе сначала я получаю X = H128 , откуда это взялось? Кроме того, почему он возвращает да? Это потому, что переменная X на самом деле не определена, и мы проверяем это условие? ?- not(X==3). X = H128 yes
214 просмотров
schedule 04.01.2024

пролог не дает мне решения, когда оно существует
Я работаю над Семью языками за семь недель , но кое-что не понимаю в прологе. У меня есть следующая программа (на основе их программы Уоллеса и Громмита): /* teams.pl */ onTeam(a, aTeam). onTeam(b, aTeam). onTeam(b, superTeam). onTeam(c,...
783 просмотров
schedule 03.06.2024