Swi prolog 525

Узнай цену своей работы

Формулировка задачи:

Даны два непустых списка целых чисел L1 и L2. Создать программу, которая строит список L3, содержащий (без повторений) все элементы L1, не входящие в состав L2, а затем вычисляет произведение N3 всех элементов L3. Запрос: R(L1, L2, L3, N3).

Решение задачи: «Swi prolog 525»

textual
Листинг программы
?- L1 = [1,2,2,3,4], L2 = [4,5,5,6], setof(X, (member(X, L1), \+ memberchk(X, L2)), L3), atomic_list_concat(L3, '*', A), term_to_atom(T, A), N3 is T.

Объяснение кода листинга программы

  1. Создаются две переменные L1 и L2, которые содержат списки [1,2,2,3,4] и [4,5,5,6] соответственно.
  2. С помощью setof и скобок (member(X, L1), + memberchk(X, L2)) фильтруется список L1, чтобы остались только элементы, которые отсутствуют в списке L2. Результат сохраняется в переменной L3.
  3. С помощью atomic_list_concat(L3, '', A) происходит объединение элементов списка L3 в одну строку с разделителем ''. Результат сохраняется в переменной A.
  4. С помощью функции term_to_atom(T, A) происходит преобразование термина T в атом A. Результат сохраняется в переменной A.
  5. Переменная N3 присваивается значение A.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.533 из 5