Списки. Удалить отрицательные элементы - Prolog

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

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

Задание звучит так: Организовать ввод и формирование списка вещественных чисел с проверкой. Сформировать список положительных элементов исходного списка. Упорядочить полученный список по возрастанию значений элементов. Подскажите, как из списка получить список без отрицательных элементов? Вот что я написала по заданию:

Решение задачи: «Списки. Удалить отрицательные элементы»

textual
Листинг программы
?- Xs = [2, 3, 0, -1, 1], setof(X, (member(X, Xs), X > 0), Ys).
Xs = [2, 3, 0, -1, 1],
Ys = [1, 2, 3].

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

  1. Первый элемент списка Xs: 2.
  2. Второй элемент списка Xs: 3.
  3. Третий элемент списка Xs: 0.
  4. Четвертый элемент списка Xs: -1.
  5. Пятый элемент списка Xs: 1.
  6. Переменная Ys инициализируется как пустой список.
  7. Код в скобках (member(X, Xs), X > 0) является предикатом, который проверяет, является ли элемент X членом списка Xs и больше ли он нуля.
  8. Код в скобках (member(X, Xs), X > 0) применяется к каждому элементу списка Xs.
  9. Если элемент X является членом списка Xs и больше нуля, он добавляется в список Ys.
  10. В результате получается список Ys: [1, 2, 3].
  11. Переменная Ys возвращается в качестве результата.

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

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