Отрицательные элементы исходного списка записать в новый список - Prolog

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

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

Отрицательные элементы исходного списка записать в новый список

Решение задачи: «Отрицательные элементы исходного списка записать в новый список»

textual
Листинг программы
select_neg([],[]).
select_neg([X|T],[X|T1]):-X<0,
                                    select_neg(T,T1).
select_neg([_|T],T1):-select_neg(T,T1).

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

В данном коде реализована логика для выделения отрицательных элементов из исходного списка.

  1. select_neg([],[]). - начальный случай, когда пустой список не содержит отрицательных элементов, возвращает пустой список.
  2. select_neg([X|T],[X|T1]):-X<0, - основной случай, когда первый элемент списка X имеет отрицательное значение, то есть X < 0, то этот элемент включается в начало нового списка T1 и вызывается рекурсивно функция select_neg для оставшейся части списка T.
  3.                                     select_neg(T,T1). - если первый элемент списка X не имеет отрицательного значения, то есть X >= 0, то он пропускается и вызывается рекурсивно функция select_neg для оставшейся части списка T.
  4. select_neg([_|T],T1):-select_neg(T,T1). - конечный случай, когда пустой список (завершающий символ _) не содержит отрицательных элементов, возвращает пустой список.

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

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