Abstract Syntax

left top right

;; Previous, "Infix" version
(define (make-binop op left right)
  (list left op right))
(define (binop? expression) (pair? expression))
(define (binop.left binop) (first binop))
(define (binop.op binop) (second binop))
(define (binop.right binop) (third binop))

;; New, "Prefix" version
(define (make-binop op left right)
  (list op left right))
(define (binop? expression) (pair? expression))
(define (binop.left binop) (second binop))
(define (binop.op binop) (first binop))
(define (binop.right binop) (third binop))

(make-binop '+ 5 10)) ==> ????

Jim Miller W3C