我试图为BST实现添加功能
(defn size
"Return the number of nodes in a BST."
[bst]
(cond (nil? bst) 0
:else (+ 1 (+ size(:left bst) size(:right bst)) ) )
)
这看起来不错吗?
答案 0 :(得分:1)
这里有些不对劲。您仍然以“标准”方式调用函数。 size(:left bst)
会引发异常,您需要(size (:left bst))
(周围的重要性以及函数名称后面的空格)。
第二件事 - 如果您有一个案例cond
,则无需使用:else
。只需使用if:
(if (nil? bst)
0
(+ 1 (+ (size (:left bst)) (size (:right bst)))))