Ответ в теме: Вычислить сумму списков на Prolog

      Комментарии к записи Ответ в теме: Вычислить сумму списков на Prolog отключены
#1790

add([Head1|Tail1], [Head2|Tail2], [SumHead|SumTail]):-
  SumHead is Head1 + Head2,
  add(Tail1, Tail2, SumTail).
add(_, _, []).

От обоих исходный списков отделяются первые элементы, вычисляется их сумма. К результату рекурсивной обработке остальных элементов добавляется вычисленная сумма. Если отделить от списков первые элементы не получилось, функция возвращает пустой список сне зависимости от содержимого исходных списков (они могут быть разной длины).