Отдельный список отрицательных и положительных - Lisp
Формулировка задачи:
(define (plus_minus) (for/list ([i '(2 1 -5 5 -2 0 -9)]) (if (< i 0) ;Записать в отрицательный список if (> i 0) ;Записать в положительный список "I dont know"))))
Решение задачи: «Отдельный список отрицательных и положительных»
(defun task (lst) (append (list (remove-if (lambda (x) (>= x 0)) lst)) (list (remove-if (lambda (x) (<= x 0)) lst)))) ==> TASK (task '(2 1 -5 5 -2 0 -9)) ==> ((-5 -2 -9) (2 1 5))
Объяснение кода листинга программы
В данном коде определена функция с именем task, которая принимает в качестве аргумента список lst. Внутри функции происходит удаление из списка всех элементов, которые больше или равны нулю, и объединение полученного списка с исходным списком lst. Результатом выполнения функции будет список, состоящий из двух частей: в первой части будут все элементы исходного списка, удовлетворяющие условию (>= x 0), во второй части — все элементы, удовлетворяющие условию (<= x 0). В данном примере функция task применяется к списку '(2 1 -5 5 -2 0 -9). Первая часть результата будет состоять из элементов (2 1 5), так как они больше нуля. Вторая часть будет состоять из элементов (-5 -2 -9), так как они меньше или равны нулю. Итоговый результат будет выглядеть так: ((-5 -2 -9) (2 1 5)).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д