我正在尝试打印一个基本的#t。 #f会打印,但是一旦我尝试#t打印,我就会收到错误。当你得到一个空列表时会发生这种情况,通常是在离开/子节点上时。
程序检查输入是否是二叉树。
Arbol意为树。
(define (arbol-binario? a)
(if (list? a)
(if (null? a)
#t
(if (= (length a) 3)
((arbol-binario? (second a))
(arbol-binario? (cdr (cdr a))))
#f))
#f))
答案 0 :(得分:0)
问题是:
((arbol-binario? (second a))
(arbol-binario? (cdr (cdr a))))
如果(arbol-binario? (second a))
评估为#t
,那么
该应用程序是:(#t (arbol-binario? (cdr (cdr a)))
,您将收到错误。
更新
尝试
(and (arbol-binario? (second a))
(arbol-binario? (cdr (cdr a))))