(define (element-of-set? x set)
(cond ((null? set) #f)
((eq? x (car set)) #t)
(else (element-of-set? x (cdr set)))))
(define (encode-symbol symbol tree)
(define (inner-encode symbol node result)
(if (leaf? node)
result
(cond ((element-of-set? symbol (symbols (left-branch node))) (inner-encode symbol (left-branch node) (cons 0 result)))
((element-of-set? symbol (symbols (right-branch node))) (inner-encode symbol (right-branch node) (cons 1 result)))
(else (error "bad symbol -- ENCODE-SYMBOL" symbol)))))
(reverse (inner-encode symbol tree '())))

(cond ((null? set) #f)
((eq? x (car set)) #t)
(else (element-of-set? x (cdr set)))))
(define (encode-symbol symbol tree)
(define (inner-encode symbol node result)
(if (leaf? node)
result
(cond ((element-of-set? symbol (symbols (left-branch node))) (inner-encode symbol (left-branch node) (cons 0 result)))
((element-of-set? symbol (symbols (right-branch node))) (inner-encode symbol (right-branch node) (cons 1 result)))
(else (error "bad symbol -- ENCODE-SYMBOL" symbol)))))
(reverse (inner-encode symbol tree '())))

댓글 없음:
댓글 쓰기