Вопросы по теме 'failure-slice'
пролог - бесконечное правило
У меня есть следующие правила
% Signature: natural_number(N)/1
% Purpose: N is a natural number.
natural_number(0).
natural_number(s(X)) :-
natural_number(X).
ackermann(0, N, s(N)). % rule 1
ackermann(s(M),0,Result):-...
901 просмотров
schedule
09.09.2023
Пролог: пифагорейская тройка
У меня есть этот код, который использует переменную верхней границы N, которая должна заканчиваться для X и Y пифагорейской тройки. Однако он зависает только тогда, когда достигает верхней границы. Не был уверен, как использовать разрез, чтобы...
2312 просмотров
schedule
14.02.2023
Лучшее завершение для s(X)-суммы
(Позвольте мне добавить это в волну промежуточных вопросов.)
Обычное определение суммы двух натуральных чисел — nat_nat_sum/3 :
nat_nat_sum(0, N, N).
nat_nat_sum(s(M), N, s(O)) :-
nat_nat_sum(M, N, O).
Строго говоря, это определение...
357 просмотров
schedule
15.12.2023
Список сортировки только с двумя элементами в прологе
сначала посмотрите на следующий пример:
?- fp(X,[b,a,b]).
false Хорошо, потому что второй аргумент должен быть отсортированным списком из двух элементов. (В моей программе я предполагаю, что a<b )
?-fp(X,[a,b,b]).
X = [a, b, b] ;...
87 просмотров
schedule
20.08.2023
Удаление дубликатов в прологе
Я новичок в прологе и сейчас читаю книгу, которая дает мне практические примеры кода. Он поручил мне удалить дубликаты.
Примечание: я прочитал другие stackoverflows, и я понимаю, как удалять дубликаты, но я не понимаю, почему мой код не работает....
2353 просмотров
schedule
30.10.2023
Перечислить по порядку в Прологе
Я пытаюсь «обратить» неупорядоченный обход, превратив неупорядоченный список обратно в BST.
BSTs имеет форму предиката node(Value,Left,Right) или leaf , поэтому пустое дерево — это просто leaf , дерево с одним узлом — node(_,leaf,leaf) ....
408 просмотров
schedule
24.07.2022
Как я могу избежать незавершения с целочисленным базовым случаем?
Я хочу написать предикат, который повторяется до 0, но он постоянно не завершается. Я использовал срез отказов, чтобы сузить его до этого:
f(a, 0).
f(b, 0).
f(X, Y) :- false.
Когда я загружаю файл как swipl -f test.pl , а затем запускаю...
115 просмотров
schedule
09.05.2022
Почему мое правило пролога застревает в бесконечной рекурсии
Мой код работает по своему прямому назначению, но всегда зацикливается в конце, что приводит к ошибке, говорящей о превышении предела стека. Мой код ниже:
byCar(auckland,hamilton).
byCar(hamilton,raglan).
byCar(valmont,saarbruecken)....
112 просмотров
schedule
28.12.2023