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


Автор: blackbanny 24.11.2010, 15:49
вот код программы:
 
(defun node_counter(tree)
        (cond
                ((null tree) 0)
                (t (+1 (node_counter(second tree)) (node_counter(third tree)) ) ) ) )

ввожу:

(node_counter(4 (2 (1 nil nil) (3 nil nil)) (5 nil nil)))

и выходит ошибка:   

error: bad function - 4

в чем дело? 

Автор: Ryukzak 25.11.2010, 14:48
Компилятор воспринемает это: (4 (2 (1 nil nil) (3 nil nil)) (5 nil nil)) как функцию. А 4 ей явно не является. Надо заквотить, поставив ' перед списком, или обернуть в (quote )

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