Я застрял в этом вопросе со списками в SWI-прологе.В Прологе переменная может быть записана один раз, поэтому я не могу справиться с этой проблемой.
check(Parameter, [H | T], Result) :-
get_res(Parameter, H, Res),
check(Res, T, Result).
Итак, предикат check / 3 принимает параметр, список и дает мне окончательный результат.get_res / 3 дает мне средний результат, который я использую в качестве входных данных для рекурсивного случая проверки / 3.Поэтому в Result я должен иметь Res для каждого рекурсивного вызова.Я пытался использовать append ([Parameter], [], Result) перед рекурсивным вызовом, но первый раз успешно, а затем не удается, потому что Result не может быть переписан.Я знаю, что мне также нужен базовый случай, это может быть проверка (_, [], []).Но я даже не уверен в этом