Advertisement
Guest User

Something on Lisp

a guest
Apr 20th, 2017
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 3.05 KB | None | 0 0
  1. ;(Барабаш Николай 3 гр. мех-мат 1999-2000)
  2. ;(wrs 'integr.prt)
  3. ;(setq echo t)                      ;echo = true
  4. ;(setq traceflag t)                 ;traceflag = true
  5. ;(defun trace(x)                    ;void trace(x){
  6. ;   (cond (traceflag (traceprint x));?  if (traceflag) return traceprint(x)?;
  7. ;         ( t nil)                  ;   else return false;
  8. ;    )                              ;}
  9. ;);  trace                          ;
  10. ;(defun traceprint(x)               ;void traceprint(x){
  11. ;   (terpri)                        ;   WriteLine(terpri)
  12. ;   (princ x))                      ;?   sw.WriteLine(x)    ?
  13. ;  traceprint                      ;}
  14.                                    ;
  15. (defun integr (l)                       ;void integr(list){
  16.    (cond ((null l) nil )                ;   if (list == null) return false;
  17.          ((null (cdr l)) (list (end l)));   else if (null == list[1:]) return new List(end, list);
  18.          ((Tsin l) (create1 l))         ;   else if (Tsin(list)) return create1(list);
  19.          ((Tcos l) (create2 l))         ;   else if (Tsin(list)) return create1(list);
  20.          ((polinom l) (create3 l))      ;   else if (polinom(list)) return create3(list);
  21.          (t (cons (integr (car l))      ;   else return new List(list[0],list[1:]);
  22.                 (integr (cdr l))      ;}       
  23.             )  
  24.          )
  25.     )
  26. )
  27. ; integr                                    ;
  28. (defun end (o)                              ;void end(o_list){
  29.     (cond ((Tcos (car o)) (create2 (car o)));   if (Tcos o_list[0]) return create2(o_list[0]);
  30.           ((Tsin (car o)) (create1 (car o)));   else if (Tsin o_list[0]) return create1(o_list[0])
  31.           (t (create3 (car o)))             ;   else return create3(o_list[0]);
  32.      ))                                     ;}
  33. ;     end                                   ;
  34. (defun create1 (j)              ;void create1(j){ (a 's' b).
  35.    (setq q (caddr j))           ;   q = j[2];     b
  36.    (setq w (* (/ (car j) q) -1));   w = -j[0]/q;  -a/b
  37.    (list w 'c q)                 ;  new List(-a/b,'c',b);
  38.    )                            ;}
  39. ;     create1
  40. (defun create2 (g)         ;void create2(g){ (2 c 5)
  41.     (setq b (caddr g))     ;
  42.     (setq a (/ (car g) b)) ;    a = g[0]/g[2];
  43.     (list a 's b)           ;   new List(a,s,g[2]); ? s
  44.     )                      ;}
  45. ;      create2             ;
  46. (defun create3 (f)         ;void create3(f){ (a b)
  47.     (setq y (+ (cadr f) 1));    y = 1 + f[1]; 1 + b
  48.     (setq h (/ (car f) y)) ;    h = f[0]/y;  
  49.     (list h y)             ;    new List(h,y); a/(b+1), b+1
  50.     )                      ;}
  51. ;     create3                ;
  52. (defun Tsin (n)              ;void Tsin(n){
  53.    (cond ((eq (cadr n) 's) t);  if (n[1] == 's) return true;
  54.             (t nil)          ;  else return false;
  55.    ))                        ;}
  56. ; Tsin                       ;
  57. (defun Tcos (e)              ;
  58.   (cond ((eq (cadr e) 'c) t) ; e[1] == 'c
  59.          (t nil)             ;
  60.     ))                       ;
  61. ; Tcos
  62. (defun polinom (k)
  63.      (cond   ((atom (cadr k)) t); k[1] - atom?
  64.              (t nil)
  65.   ))
  66. ;  
  67. (princ (integr '((5 2)(4 8)(6 s 7)(2 c 5))))
  68.  
  69. ;(rds)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement