“应用程序:不是程序”除了我试图打印#t之外,一切都有效

时间:2015-10-09 22:00:34

标签: scheme racket

我正在尝试打印一个基本的#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))

1 个答案:

答案 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))))