Проверить, отсортирован ли список по убыванию - Lisp
Формулировка задачи:
Реализовать функцию, которая для заданного списка проверяет, является ли он отсортированным по убыванию. В случае положительного результата – выдать список, в противном случае – NIL. Например, для списка ’(1 1 3 5 2) результатом будет NIL.
Решение задачи: «Проверить, отсортирован ли список по убыванию»
(defun task (lst) (if (apply '> lst) lst nil)) ==> TASK (task '(5 4 3 2 1)) ==> (5 4 3 2 1) (task '(5 4 2 3 1)) ==> NIL
Объяснение кода листинга программы
В коде определена функция task
, которая принимает в качестве аргумента список lst
. Функция проверяет, отсортирован ли список в порядке убывания. Если список отсортирован, то возвращается сам список, иначе возвращается nil
.
В первом вызове функции task
передается список (5 4 3 2 1)
в качестве аргумента. Функция проверяет, что список отсортирован в порядке убывания (5 > 4 > 3 > 2 > 1). Так как это условие выполняется, функция возвращает сам список (5 4 3 2 1)
.
Во втором вызове функции task
передается список (5 4 2 3 1)
в качестве аргумента. Функция проверяет, что список отсортирован в порядке убывания (5 > 4 > 3 > 2 > 1). Поскольку это условие не выполняется, функция возвращает nil
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д