Проверить, является ли один список подмножеством другого списка - Prolog
Формулировка задачи:
не справляюсь с этим чудо-языком.. буду благодарен помощи в решении задач:
Даны два списка L1 и L2. Проверить, является ли один список подмножеством другого списка.
-------------------------------------------------------
Дан список целых чисел, каждый элемент которого больше 0 и меньше 100. Сформировать новый список элементов, в котором числа меньше 40 заменить на 0, от 41 до 70 заменить на 1, больше 70 – заменить на 2.
Решение задачи: «Проверить, является ли один список подмножеством другого списка»
textual
Листинг программы
domains int=integer intl=int* predicates action(intl,intl) clauses action([],[]). action([H|T],[H1|T1]) :- H < 40, H1=0, action(T,T1), !. action([H|T],[H1|T1]) :- H >= 41, H < 70, H1=1, action(T,T1), !. action([_|T],[H1|T1]) :- H1=2, action(T,T1), !. goal action([1,2,3,41,42,43,70,71,72,-3],N), write(N), nl.
Объяснение кода листинга программы
- В данном коде используется язык программирования Prolog.
- Задача заключается в проверке, является ли один список подмножеством другого списка.
- Для решения задачи введен предикат
action
, который принимает два аргумента - списки целых чисел. - В первой строке
action([],[]).
задается базовый случай, когда первый список пустой, тогда и второй список тоже должен быть пустым. - Во втором и третьем утверждениях
action([H|T],[H1|T1]) :- H < 40, H1=0, action(T,T1), !.
иaction([H|T],[H1|T1]) :- H >= 41, H < 70, H1=1, action(T,T1), !.
задаются условия для рекурсивного вызова функцииaction
. - В четвертом утверждении
action([_|T],[H1|T1]) :- H1=2, action(T,T1), !.
задается условие для случая, когда первый список не пустой, а второй список пустой. - В цели
action([1,2,3,41,42,43,70,71,72,-3],N), write(N), nl.
задается список чисел [1,2,3,41,42,43,70,71,72,-3] и вызывается функцияaction
для проверки, является ли он подмножеством списка N. - Результат проверки выводится на экран с помощью функции
write
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д