Определить, есть ли в списке два подряд идущих пустых списка - Lisp
Формулировка задачи:
Определить, есть ли в списке два подряд идущих пустых списка.
Использование встроенных функций не допускается, считается, что списки имеют многоуровневую структуру.
Решение задачи: «Определить, есть ли в списке два подряд идущих пустых списка»
textual
Листинг программы
(define (foo lst) (if (null? (cdr lst)) #f (or (and (null? (car lst)) (null? (cadr lst))) (foo (cdr lst)))))
Объяснение кода листинга программы
В данном коде определенная функция с именем foo, которая принимает в качестве аргумента список lst.
- Если lst — это пустой список, то функция возвращает значение #f.
- Иначе, функция проверяет два первых элемента списка lst. Если оба они пустые списки, то функция возвращает значение #f.
- Если первый элемент пустой список, а второй не пустой, то функция вызывает саму себя, передавая в качестве аргумента оставшуюся часть списка lst, начиная с третьего элемента.
- Если оба элемента не пустые списки, то функция вызывает саму себя, передавая в качестве аргумента оставшуюся часть списка lst, начиная со второго элемента.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д