数 L と木 T のリストを取り、L のすべての数を T に挿入した結果の木を返す、insert-list という手続きを書きます。
これは私のコードです:
(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
このエラーが発生し続けるのはなぜですか?