Data Abstraction: Bane or Boon? |
![]() ![]() |
(define make-var cons) (define var.name car) (define var.value cdr) (define (variable.value var) (define (loop vars) (if (null? vars) (error "Undefined variable" var) (let ((first-var (first vars))) (if (eq? var (var.name first-var)) (var.value first-var) (loop (cdr vars)))))) (loop variables)) (define (variable.value name) (let ((entry (assq name variables))) (if entry (cdr entry) (error "No such variable" name))))
Jim Miller | ![]() |