Variables and Lookup

left top right

   (define (assq name a-list)
     ;; A-List looks like
     ;;   ((name1 ...) (name2 ...) ...)
     (cond ((null? a-list) #F)
           ((eq? name (first (car a-list)))
            (car a-list))
           (else (assq name (cdr a-list)))))

   (define (variable.value name)
     (let ((entry (assq name variables)))
       (if entry
           (cdr entry)
           (error "No such variable" name))))

Jim Miller W3C