Отдельный список отрицательных и положительных - 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)).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д