Advertisement
nocturnalmk

[VI] lab 6

Apr 17th, 2013
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.78 KB | None | 0 0
  1. ; prva
  2.  
  3. (defun presmetaj (el)
  4.  
  5.     (setq x (first el))
  6.     (setq y (third el))
  7.     (setq op (second el))
  8.  
  9.     (cond
  10.         ((eq op '+) (+ x y))
  11.         ((eq op '-) (- x y))
  12.         ((eq op '/) (/ x y))
  13.         ((eq op '*) (* x y))
  14.     )
  15.  
  16. )
  17.  
  18. (print (presmetaj '(3 + 4)))
  19. (print (presmetaj '(3 * 4)))
  20. (print (presmetaj '(3 - 4)))
  21. (print (presmetaj '(3 / 4)))
  22. (print (presmetaj '(3.0 / 4.0)))
  23.  
  24. ; vtora
  25.  
  26. (defun zameni (lista)
  27.     (cond
  28.  
  29.         ((not (null lista))
  30.             (setq prev (reverse lista))
  31.             (setq tmp (reverse (cdr prev)))
  32.             (append tmp (list prev))
  33.         )
  34.     )
  35. )
  36.  
  37. (print (zameni '(a b c d ะต)))
  38.  
  39. ; treta
  40.  
  41. (defun broj (x listi)
  42.     (brojPom x listi 0)
  43. )
  44.  
  45. (defun brojPom (x listi count)
  46.     (cond
  47.         ((null listi) count)
  48.         (t
  49.             (setq tmp (car listi))
  50.             (if (eq (car tmp) x) (setq count (+ count 1)))
  51.             (brojPom x (cdr listi) count)
  52.         )
  53.     )
  54. )
  55.  
  56. (print (broj 1 '((1 7) (2 8) (3 5) (1 10) (1 11))))
  57.  
  58. ; cetvrta
  59.  
  60. (defun podzagradi (lista)
  61.     (cond
  62.         ((null lista) nil)
  63.         ((eq (cdr lista) nil) (cons (list (car lista))  (podzagradi (cddr lista))))
  64.         (t
  65.             (cond
  66.                 ((<= (first lista) (second lista))
  67.                     (setq x (first lista))
  68.                     (setq y (second lista)))
  69.                 (t
  70.                     (setq y (first lista))
  71.                     (setq x (second lista)))
  72.             )
  73.        
  74.             (cons (list x y) (podzagradi (cddr lista)))
  75.         )
  76.     )
  77. )
  78.  
  79. ;(print (podzagradi '(10 7 23 15 11 30 55)))
  80. (print (podzagradi '(10 7 23 15 11 30)))
  81.  
  82. ; sedma
  83.  
  84. (defun vmetni (a mnoz)
  85.     (if (member a mnoz) (setq mnoz (remove a mnoz)))
  86.     (cons a mnoz)
  87. )
  88.  
  89. (print (vmetni 5 '(2 3 4)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement