Проверить, является ли один список подмножеством другого списка - 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.

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

  1. В данном коде используется язык программирования Prolog.
  2. Задача заключается в проверке, является ли один список подмножеством другого списка.
  3. Для решения задачи введен предикат action, который принимает два аргумента - списки целых чисел.
  4. В первой строке action([],[]). задается базовый случай, когда первый список пустой, тогда и второй список тоже должен быть пустым.
  5. Во втором и третьем утверждениях 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.
  6. В четвертом утверждении action([_|T],[H1|T1]) :- H1=2, action(T,T1), !. задается условие для случая, когда первый список не пустой, а второй список пустой.
  7. В цели 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.
  8. Результат проверки выводится на экран с помощью функции write.

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


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

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

15   голосов , оценка 3.867 из 5
Похожие ответы