Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (DEFUN DIFF-POL (DT DX)
- (COND ((NULL DT) NIL)
- ((ATOM DT) (DIFF-POL-ATOM DT DX))
- ((AND (LISTP DT) (EQL (CAR DT) '-)) (DIFF-POL-ATOM (CADR DT) DX))
- ((AND (LISTP DT) (EQL (CAR DT) '*)) (DIFF-POL-PROD (CADR DT) (CADDR DT) DX))
- ((AND (LISTP DT) (EQL (CAR DT) 'EXPT)) (DIFF-POL-EXPT (CADR DT) (CADDR DT) DX))
- ((AND (LISTP DT) (EQL (CAR DT) '+)) (DIFF-POL-SUMME (CDR DT) DX))
- (T NIL)
- )
- )
- (DEFUN DIFF-POL-ATOM (DT DX)
- (COND ((EQL DT DX) 1)
- (T 0)
- )
- )
- (DEFUN DIFF-POL-PROD (KO V DX)
- (COND ((EQL V DX) KO)
- ((LISTP V) (LIST '* KO (DIFF-POL V DX)))
- (T 0)
- )
- )
- (DEFUN DIFF-POL-EXPT (V EXP DX)
- (COND ((NOT (EQL V DX)) 0)
- ((NOT (NUMBERP EXP)) (LIST '* EXP (LIST 'EXPT V (LIST '- EXP 1))))
- ((= EXP 1) 1)
- ((= EXP 2) (LIST '* '2 V))
- (T (LIST '* EXP (LIST 'EXPT V (- EXP 1) )))
- )
- )
- (DEFUN DIFF-POL-SUMME (DT DX)
- (COND ((= (LENGTH DT) 1) (DIFF-POL (CAR DT) DX))
- (T (CONS '+ (DIFF-POL-SUMME-R DT DX)))
- )
- )
- (DEFUN DIFF-POL-SUMME-R (DT DX)
- (COND ((NULL DT) NIL)
- ((AND (NUMBERP (DIFF-POL (CAR DT) DX)) (= (DIFF-POL (CAR DT) DX) 0)) (DIFF-POL-SUMME-R (CDR DT) DX))
- (T (CONS (DIFF-POL (CAR DT) DX) (DIFF-POL-SUMME-R (CDR DT) DX)))
- )
- )
- (DIFF-POL 1 'X);->0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement