Advertisement
jovanovski

ВИ Лаб6

Apr 17th, 2013
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 2.78 KB | None | 0 0
  1. ;---
  2. ;zad1
  3. ;---
  4.  
  5. (defun presmetaj (lista)
  6.    
  7.     (if (string-equal (CADR lista) "+")
  8.         (+ (CAR lista) (CADDR lista))
  9.          (if (string-equal (CADR lista) "-")
  10.         (- (CAR lista) (CADDR lista))
  11.            
  12.            (if (string-equal (CADR lista) "*")
  13.         (* (CAR lista) (CADDR lista))
  14.              
  15.                  (if (string-equal (CADR lista) "/")
  16.         (/ (CAR lista) (CADDR lista))
  17.     )
  18.     )
  19.      
  20.            )   
  21.       )  
  22.  
  23. )
  24.  
  25. (presmetaj '(1.0 / 2.5))
  26.  
  27. ;---
  28. ;zad2
  29. ;---
  30.  
  31. (defun prevrti (lista novalista)
  32.  
  33.   (if (null lista)
  34.     novalista
  35.    
  36.     (prevrti (CDR lista) (APPEND (list (CAR lista)) novalista))
  37.    
  38.     )
  39.  
  40. )
  41.  
  42. (defun zameni (lista novalista staralista)
  43.  
  44.   (if (null (CADR lista))
  45.     (APPEND novalista (prevrti staralista '()))
  46.    
  47.   (zameni (CDR lista) (APPEND novalista (list (CAR lista))) staralista)
  48.   )
  49. )
  50. (zameni '(1 2 3 4) '() '(1 2 3 4))
  51.  
  52.  
  53. ;---
  54. ;zad3
  55. ;---
  56.  
  57. (defun proveri (broj lista)
  58.  
  59.   (if (EQUAL broj (CAR lista))
  60.     1
  61.     0
  62.     )
  63. )
  64.  
  65. (defun broj (atomm lista zbir)
  66.   (if (null lista)
  67.     zbir
  68.     ;print lista
  69.     (broj atomm (CDR lista) (+ zbir (proveri atomm (CAR lista))))
  70.    
  71.     )
  72.   )
  73.  
  74. (broj 1 '((3 2) (1 3)) 0)
  75.  
  76. ;---
  77. ;zad4
  78. ;---
  79.  
  80. (defun sredi (broj1 broj2)
  81.   (if (null broj1)
  82.     (list broj2)
  83.     (if (null broj2)
  84.       (list broj1)
  85.     (if (> broj1 broj2)
  86.     (list broj2 broj1)
  87.     (list broj1 broj2)
  88.     )
  89.     )
  90.     )
  91.  
  92. )
  93.  
  94.  
  95. (defun podzagradi (lista novalista)
  96.   (if (null lista)
  97.     novalista
  98.     (podzagradi (CDDR lista) (APPEND novalista (list(sredi (CAR lista) (CADR lista)))))
  99.     )
  100.  
  101.   )
  102.  
  103. (podzagradi '(3 1 5 2 6) '())
  104.  
  105. ;---
  106. ;zad5
  107. ;---
  108.  
  109. (defun funny (broj)
  110.   (if (= broj 1)
  111.     1
  112.     (if (= (mod broj 2) 0)
  113.       (* 2 (funny (- broj 1)))
  114.      
  115.       (+ (funny (- broj 1)) (funny (- broj 2)))
  116.       )
  117.    )
  118.   )
  119.  
  120. (funny 19)
  121.  
  122. ;---
  123. ;zad6
  124. ;---
  125.  
  126. (defun najmal (lista naj)
  127.  
  128.   (if (null lista)
  129.     naj
  130.     (if (< (CAR lista) naj)
  131.       (najmal (CDR lista) (CAR lista))
  132.       (najmal (CDR lista) naj)
  133.       )
  134.     )
  135.  
  136.  )
  137.  
  138. (defun izvadi (el lista noval)
  139.    (if (equal el (CAR lista))
  140.      (APPEND noval (CDR lista))
  141.      (
  142.        izvadi el (CDR lista) (append noval (list (CAR lista)))
  143.        )
  144.      )
  145. )
  146.  
  147. (defun procesiraj (noval lista)
  148.  
  149.   (if (null lista)
  150.      noval
  151.     (procesiraj (APPEND noval (list (najmal lista (CAR lista)))) (izvadi (najmal lista (CAR lista)) lista '()))
  152.     )
  153.   )
  154.  
  155.  
  156. (procesiraj '() '(5 1 7 3 8))
  157.  
  158. ;---
  159. ;zad7
  160. ;---
  161.  
  162. (defun proveri (el lista)
  163.   (if (null lista)
  164.     NIL
  165.     (if (equal (CAR lista) el) T
  166.       (proveri el (CDR lista))
  167.       )
  168.     )
  169.   )
  170.  
  171. (defun vmetni (el lista)
  172.   (if (proveri el lista)
  173.     lista
  174.     (APPEND (list el) lista)
  175.    
  176.     )
  177.   )
  178.  
  179. (vmetni 4 '(2 3))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement