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