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

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

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

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

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

textual
Листинг программы
  1. (Defun last (x)
  2.    (COND ((NULL x) NIL)
  3.              ((NULL (CDR x)) x)
  4.              (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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы