Определить, есть ли в списке два подряд идущих пустых списка - Lisp

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

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

Определить, есть ли в списке два подряд идущих пустых списка. Использование встроенных функций не допускается, считается, что списки имеют многоуровневую структуру.

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

textual
Листинг программы
(define (foo lst)
  (if (null? (cdr lst))
      #f
      (or (and (null? (car lst))
               (null? (cadr lst)))
          (foo (cdr lst)))))

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

В данном коде определенная функция с именем foo, которая принимает в качестве аргумента список lst.

  1. Если lst — это пустой список, то функция возвращает значение #f.
  2. Иначе, функция проверяет два первых элемента списка lst. Если оба они пустые списки, то функция возвращает значение #f.
  3. Если первый элемент пустой список, а второй не пустой, то функция вызывает саму себя, передавая в качестве аргумента оставшуюся часть списка lst, начиная с третьего элемента.
  4. Если оба элемента не пустые списки, то функция вызывает саму себя, передавая в качестве аргумента оставшуюся часть списка lst, начиная со второго элемента.

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


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

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

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