Функции для обработки списка обычно являются рекурсивными. В начале функции анализируется условие завершения рекурсии. Если список пустой, возвращается результат для тривиального случая. Если список не пуст, то формируется результат с использованием значения первого элемента списка и результата, полученного при выполнении рекурсии.
Рассмотри, как можно определить функцию для нахождения длины списка. При удалении первого элемента список становится короче на 1. длина(х)=если eq(x,’()), то 0 иначе длина(cdr(x))+1
Иногда в определении функции встречаются одинаковые подвыражения. Удобно дать этим подвыражениям имя. Для этого используются блоки локальных переменных { пусть x1=e1… в е}и{е где x1=e1…}. Результатом вычисления блока локальных определений является значение выражения е.