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


Автор: virux 27.3.2011, 23:46
определить функцию, которая бы вычислить количество элементов в списке с помощью циклов.

пример:
(A B C) -3 елемента
(A(B C)) - 2 елемента

Автор: k0rvin 28.3.2011, 12:39
Код

(defun count (list)
  (do ((xs list (cdr xs))
       (n  0    (+ n 1)))
      ((null xs) n)))

Автор: virux 28.3.2011, 16:34
Цитата(k0rvin @ 28.3.2011,  12:39)
Код

(defun count (list)
  (do ((xs list (cdr xs))
       (n  0    (+ n 1)))
      ((null xs) n)))


всё разабрался спасибо.

edit.

Автор: _sg 25.4.2014, 15:13
как вариант:
Код

(defun -length (w)
  (loop for a in w counting a))

> (-length '(a b c d e))
5

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