Я пытаюсь написать предикат для следующей задачи.
Запишите предикатные расстояния (Bs, B, Ds), где Bs и Ds являются списками переменных, так что i-й элемент Ds является абсолютной разницей между переменной B и i-м элементом Bs
знаю, что это неправильно, но это то, что, я думаю, я должен пытаться сделать
distances([],_,[]).
distances([H|T],B,A) :-abs(H - B,A),distances(T,B,A)
Нужно ли возвращать результат предиката abs в рекурсивный вызов расстояния?
Я могу использовать abs для вычисления правильного значения для каждой записи в списке, но как мне затем поместить эту информацию в список, который затем может быть возвращен?