Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > LISP > рекурсивные функции


Автор: AttentiONlll 30.3.2011, 15:44
Здравствуйте, помогите, пожалуйста с написанием рекурсивных функций.

Требуется создать рекурсивную функцию, которая считает сколько в  списке атомов и сколько подсписков.

 И еще одна: с помощью рекурсивной функции нужно проверить соответствие списков.

Заранее спасибо.

Автор: _sg 25.4.2014, 15:18
Код

(defun atom-sublist (w &optional (a 0) (s 0))
  (cond ((null w) (list a s))
        ((atom (car w)) (atom-sublist (cdr w)(1+ a) s))
        (t (atom-sublist (cdr w) a (1+ s)))))

> (atom-sublist '(a '(b) c '(d) e))
(3 2)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)