So my old friend and archnemisis is building a calculator, but with LISP (more specifically, the SCHEME dialect). He has come to a problem with partial derivatives, and I must admit it is a devil of a problem.

He programmed a derivative to return several things conditionally

Thus one has to enter the function (lambda (x) (f)) and has returned several things (he plans to tackle integrals the same way).Code:(define (deriv (lambda (x) (f)) dx) (cond (= f (^ x n)) (* n (^ f (- n 1))) (= f (ln (abs x))) (^ x -1) (= f (sin x)) (cos x) (= f (cos x)) (* (sin x) (-1)) (= f (tan x)) ((^ sec 2) x) (= f (csc x)) (* (* (-1) (csc x)) (cot x)) (= f (sec x)) (* (sec x) (tan x)) (= f (cot x)) (* ((^ csc 2) x) (-1)) (= f (exp x)) (exp x) (= f (^ a x)) (* (ln a) (^ a x))))

I can't figure out for the life of me how to help him make a partial derivative without creating errors!