Are Operators Just Variables?

left top right

(define variables
  (list (cons 'X 3)
        (cons 'Y 5)
        (cons '+ +)
        (cons '* *)))

(define (expression expr)
  (cond ...
        ((binop? expr)
         (let ((op (binop.op expr)) ...)
           (let ((procedure (variable.value op)))
             (procedure rand-1 rand-2))))
        ...))

Jim Miller W3C