sicp-solutions/chapter-2/ex-2.66.scm

19 lines
No EOL
618 B
Scheme

#lang sicp
(define (entry tree) (car tree))
(define (left-branch tree) (cadr tree))
(define (right-branch tree) (caddr tree))
(define (make-tree entry left right)
(list entry left right))
(define (key record)
(car record))
(define (lookup given-key set-of-records)
(cond ((null? set-of-records) false)
((= given-key (key (entry set-of-records)))
(entry set-of-records))
((< given-key (key (entry set-of-records)))
(lookup given-key (left-branch set-of-records)))
((> given-key (key (entry set-of-records)))
(lookup given-key (right-branch set-of-records)))))