anchor.diff:        (p2 (make-polynomial 'x '(sparse (3 1) (0 -1))))
         (p3 (make-polynomial 'x '(sparse (1 1))))
         (p4 (make-polynomial 'x '(sparse (2 1) (0 -1)))))
  -  (let (;(rf1 (make-rational p1 p2))
  -	;(rf2 (make-rational p3 p4))
  +  (let ((rf1 (make-rational p1 p2))
  +	(rf2 (make-rational p3 p4))
   	)
  -    ;(format t "~% reduce p1 p2 ~A" (my-reduce p1 p2))
  -    ;(format t "~%rf1 is ~A" rf1)
  -    ;(format t "~%rf2 is ~A" rf2)
  -    ;(format t "~%res is ~A" (add rf1 rf2))
  +    (format t "~% reduce p1 p2 ~A" (my-reduce p1 p2))
  +    (format t "~% reduce p3 p4 ~A" (my-reduce p3 p4))
  +    (format t "~%rf1 is ~A" rf1)
  +    (format t "~%rf2 is ~A" rf2)
  +    (format t "~%res is ~A" (add rf1 rf2))
       (format t "~%the end!")))
   
  -
  +;;结果是正确的。但是都是负数，需要乘-1修正一下。
  
positive.code: 
  (defun reduce-terms (n d)
    (let ((g (gcd-terms n d)))
      (list (div-terms n g)
  	  (div-terms d g))))
  
  (defun my-reduce (n d) (apply-generic 'reduce n d))
  
  
negative.code:     (my-put 'gcd '(polynomial polynomial)
  	    #'(lambda (p1 p2) (tag (gcd-poly p1 p2))))
      (my-put 'reduce '(polynomial polynomial)
  	    #'(lambda (p1 p2) (mapcar #'(lambda (p) (tag p))
  				      (reduce-poly p1 p2))))
      ;;2.87 add =zero?
      (my-put '=zero? '(polynomial) 
  	    #'(lambda (p) (empty-termlist? (term-list p))))
  