Вопросы по теме '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 просмотров
schedule
17.03.2022
Решение текстовой логической головоломки в 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 просмотров
schedule
10.02.2023
Как реализовать предикат not_all_equal/1
Как можно реализовать предикат not_all_equal/1 , который будет успешным, если данный список содержит как минимум 2 разных элемента, и потерпит неудачу в противном случае?
Вот моя попытка (не очень чистая):
not_all_equal(L) :-
(...
169 просмотров
schedule
12.06.2023
Что никогда не бывает равным самому себе?
Есть ли в Прологе ценность, отличная от самой себя? Я пишу ответ на некоторый вопрос о 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