A binding list or execution environment is an association list in which each element is a cons of a variable name and its value: ((x . 3) (y . 4) ...)
(define (m-value var env) (let ((pair (assoc var env))) (if pair (cdr pair) (m-error "Unbound variable " var)) ))(define (m-bind formalargs actualargs alist) (if (null? formalargs) (if (null? actualargs) alist (m-error "Too many args " actualargs) ) (if (null? actualargs) (m-error "Not enough args " actualargs) (m-bind (cdr formalargs) (cdr actualargs) (cons (cons (car formalargs) (car actualargs)) alist)) ) ))
Contents    Page-10    Prev    Next    Page+10    Index