编写一个名为 insert-list 的过程,它接受一个数字列表 L 和一个树 T,并返回通过将 L 中的所有数字插入到 T 中得到的树。
这是我的代码:
(define (make-tree value left right) (list value left right))
(define (value tree) (car tree))
(define (left tree) (cadr tree))
(define (right tree) (caddr tree))
(define (insert-list L T)
(cond ((null? L) T)
((null? T) (insert-list (cdr L) (make-tree (car L) '() '())))
((= (car L) (value T)) (insert-list (cdr L) T))
((< (car L) (value T)) (insert-list (cdr L) (make-tree (value T)(insert-list L (left T)) (right T))))
((> (car L) (value T)) (insert-list (cdr L) (make-tree (value T) (left T) (insert-list L (right T)))))))
我不断收到错误:
car: contract violation
expected: pair?
given: 4
为什么我不断收到此错误?