Напишите функцию, определяющую глубину последнего вхождения элемента Y в список W - Lisp

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

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

Помогите пожалуйста уже 3 неделю бьюсь над этой задачкой, посмотрел кучу тем и не нашел то, что мне нужно. Задание : Напишите функцию, определяющую глубину последнего вхождения элемента Y в список W. Пример: (<имя функции> '(1 2 3 (1 2 3) (( ((3)) 3)) ) 3 ) --> 2; глубину считал с 0

Решение задачи: «Напишите функцию, определяющую глубину последнего вхождения элемента Y в список W»

textual
Листинг программы
(Defun last (x) 
   (COND ((NULL x) NIL) 
             ((NULL (CDR x)) x) 
             (T (last (CDR x)))))

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

В данном коде определена функция LAST, которая принимает один аргумент X. Внутри функции используется условная конструкция COND, которая проверяет три условия:

  1. Если X равно NIL, то возвращается NIL.
  2. Если CDR X равно NIL, то возвращается X.
  3. Если CDR X не равно NIL, то рекурсивно вызывается функция LAST с аргументом CDR X. Таким образом, функция LAST работает следующим образом:
  4. Если входной список пустой, то функция возвращает NIL.
  5. Если в списке остался только один элемент, то возвращается этот элемент.
  6. Если в списке есть несколько элементов, то функция рекурсивно вызывается для обработки оставшейся части списка. В итоге, функция LAST позволяет найти последний элемент в списке.

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


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

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

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