anchor.diff:  		 (mul-poly (change-var p1)
   			   (change-var p2))))
   	   (sub-poly (p1 p2)
  +	     ;(format t "sub the ~%~A~%" (list p1 p2))
   	     (if (same-variable? (variable p1) (variable p2))
   		 (make-poly (variable p1)
   			    (sub-terms (term-list p1)
  
positive.code:      (show l2)
       (show (add-terms l1 l1))
       (show (mul-terms l1 l1))
      
  
       (show (add-terms l2 l2))
       (show (mul-terms l2 l2))
  
       (show (sub-terms l2 l1))
      
  
       (let ((p1 (make-polynomial 'x l1))
  	   (p2 (make-polynomial 'y l2)))
         (show (add p1 p2))
         (show (add p2 (add p1 p2)))
  ;       (show (sub p1 p2))
  ;       (show (mul p1 p2))
         (show p1)
         (show p2))
       (show "test end")
       'done)))
  
  
  ;;;;2.91
  
  (defun div-terms (l1 l2)
    (if (empty-termlist? l1)
        (list (the-empty-termlist) (the-empty-termlist))
        (let ((t1 (first-term l1))
  	    (t2 (first-term l2)))
  	(if (> (order t2) (order t1))
  	    (list (the-empty-termlist) l1)
  	    (let ((new-c (div (coeff t1) (coeff t2)))
  		  (new-o (- (order t1) (order t2))))
  	      (let ((rest-of-result (div-terms (sub-terms l1 
  							  (mul-terms l2
  								     (make-term new-o new-c)))
  					       l2)))
  		(list (add-terms (car rest-of-result) 
  				 (make-term new-o new-c))
  		      (cadr rest-of-result))))))))
  
  ;;;;2.92
  
  
  ;;都写了‘这绝不简单’，先绕过，回头补上。
  ;;写下大体的思路。三种情况需要处理。第一、两个多项式有同一变元。这种情况无需做特别处理。直接相加即可。第二、两个多项式有不同的变元，并且各自的系数中也不存在于另一个相同的变元。这种情况也可以直接相加。第三、就是x的多项式的系数可能是y的多项式。y的多项式的系数是x的多项式。这两个多项式相加就会稍微麻烦一些。首先，要有一个函数来判断这种情况。其次，还要有一个函数来转换其中的一个多项式到另一个多项式。使其具有相同的变元。而题目要求的是要通过加入强制性的变量序来达到目的。需要raise和drop函数来操作这个强制的过程。假定所有的多项式都以x作为变元。drop函数把所有的多项式都转换成为x作为变元的多项式。
  
  ;;难点就在与多项式的转化上。转化之后要变成标准格式的多项式。涉及到按变元次数进行排序的问题。
  
  ;;答案已经写在上面了。思路就是将多项式的每一项分解并逐个检查并变换每一项的变远到x。然后将转换好的每一项再加起来。
  
  
  ;;;;2.93
  
  
  
negative.code: 	    #'(lambda (x y) (tag (* x y))))
      (my-put 'div '(scheme-number scheme-number)
  	    #'(lambda (x y) (tag (/ x y))))
      (my-put 'gcd '(scheme-number scheme-number)
  	    #'(lambda (x y) (tag (my-gcd x y))))
      (my-put 'reduce '(scheme-number scheme-number)
  	    #'(lambda (x y) (tag (let ((g (greatest-common-divisor x y)))
  				   (list (/ x g) (/ y g))))))
      (my-put 'make 'scheme-number
  	    #'(lambda (x) (tag x)))
      (my-put 'sine '(scheme-number) #'(lambda (x) (tag (sin x))))
  