Определить, упорядочены ли элементы в одноуровневом списке, содержащем латинские буквы, по алфавиту - Lisp

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

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

(defun sum-list (x) (cond ((null x) 0)
                                  (t (+ (car x) (sum-list (cdr x))))))

Решение задачи: «Определить, упорядочены ли элементы в одноуровневом списке, содержащем латинские буквы, по алфавиту»

textual
Листинг программы
(defun sorted (w v)
  (cond ((null v))
        ((null w) (null v))
        ((eq (car w) (car v)) (sorted w (cdr v)))
        ((sorted (cdr w) v))))
 
> (sorted '(a b c d e f g h i j k l m n o p q r s t u v w x y z) '(g g h h z z))
T
> (sorted '(a b c d e f g h i j k l m n o p q r s t u v w x y z) '(x g g h h z z))
NIL

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

В коде определённая функция с именем sorted, которая принимает два аргумента: w и v. Если w или v равны null, то функция возвращает null. Если car w равен car v, то функция рекурсивно вызывает себя с аргументами w и cdr v. В последнем случае функция также рекурсивно вызывает себя с аргументами cdr w и v. Пример использования функции:

(sorted '(a b c d e f g h i j k l m n o p q r s T U V W X Y Z) '(x g g h h z z)) T Функция sorted принимает список букв в качестве первого аргумента и список букв в качестве второго аргумента. Она сортирует первый список по алфавиту, игнорируя регистр, и сравнивает его с вторым списком. Если списки не совпадают, функция возвращает NIL. Если списки совпадают, функция возвращает T. В данном примере функция возвращает T, потому что первый список содержит буквы в алфавитном порядке, как и второй список. Пример использования функции: (sorted '(a b c d e f g h i j k l m n o p q r S T U V W X Y Z) '(x g g h h z z)) NIL

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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