Blob


1 (define (deriv exp var)
2 (cond ((number? exp) 0)
3 ((variable? exp)
4 (if (same-variable? exp var) 1 0))
5 ((sum? exp)
6 (make-sum (deriv (addend exp) var)
7 (deriv (augend exp) var)))
8 ((product? exp)
9 (make-sum
10 (make-product (multiplier exp)
11 (deriv (multiplicand exp) var))
12 (make-product (deriv (multiplier exp) var)
13 (multiplicand exp))))
14 (else
15 (error "unknown expression type -- DERIV" exp))))