rendered paste body;; Question 1
(= (eval '(+ 2 (pow x 2)) 2) 6)
(= (eval '(/ x 2) 4) 2)
(= (eval '(* 3 (+ x 2)) 2) 12)
(= (eval '(- (+ x 6) (- 4 (- 2 x))) 2) 4)
(= (eval '(pow (* 2 x) 3) 2) 64)
;; Q3
(equal? (symb-diff 4) 0)
(equal? (symb-diff 'x) 1)
(equal? (symb-diff '(+ 3 x)) '(+ 0 1))
(equal? (symb-diff '(- 3 x)) '(- 0 1))
(equal? (symb-diff '(* 4 x)) '(+ (* 0 x) (* 1 4)))
(equal? (symb-diff '(/ 4 x)) '(/ (- (* 0 x) (* 1 4)) (pow x 2)))
(equal? (symb-diff '(pow x 3)) '(* 3 (* (pow x 2) 1)))
(equal? (symb-diff '(pow (* (+ 3 x) (/ 3 x)) 3))
'(* 3 (* (pow (* (+ 3 x) (/ 3 x)) 2) (+ (* (+ 0 1) (/ 3 x)) (* (/ (- (* 0 x) (* 1 3)) (pow x 2)) (+ 3 x))))))
;; Q4
(= ((compile '(+ 2 x)) 3) 5)
(= ((compile '(- x 3)) 10) 7)
(= ((compile '(* 3 x)) 4) 12)
(= ((compile '(/ (* 2 x) (+ x 3))) 3) 1)
(= ((compile '(pow x 3)) 2) 8)
(= ((compile '(+ (* 5 x) (pow (/ x 3) 2))) 6) 34)