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

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

В этой теме 1 ответ, 2 участника, последнее обновление  Васильев Владимир Сергеевич 1 год, 11 мес. назад.

  • Автор
    Сообщения
  • #1789

    questioner
    Участник

    написать на SWI Prolog процедуру add(List1, List2, List3), которая по заданным спискам целых чисел List1 и List2 одинаковой длины строит новый список List3 (той же длины), содержащий суммы элементов исходных списков.

  • #1790

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

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

Для ответа в этой теме необходимо авторизоваться.