Table of Contents

JUI - 3. cviceni

;funkce otoc, ktera otoci poradi prvku v seznamu (bez podseznamu)
;tj. (1 2 (5 4) 3) -> (3 (5 4) 2 1)
 
(defun otoc (seznam)
  (cond 
     ( (eq seznam nil) seznam) 
     (T (cons (car (last seznam)) (otoc (butlast seznam) ) ) )
  )
)
 
(apply adr_funkce seznam parametru)
; vola funkci
(apply #'+ '(1 2 3 4))
; #'x vraci adresu funkce +
 
mapcar - pro kazdy prvek seznamu spusti funkci s parametry, vysledky se spoji do seznamu
(mapcar adresa_funkce seznam)
; prvky seznamu se aplikuji na funkci, vysledek je seznam vysledku
 
(mapcar #'list '(1 2 3) '(5 6 7) '(7 9 20))
; vraci (1 5 7) (2 6 9) (3 7 10)
 
;pomoci funkce mapcar definujte funkci PRUMERY, ktera vraci seznam prumeru odpovdajicich si prvku ve dvou seznamech 
(defun av(a b)
   (/ (+ a b) 2)
)
 
(defun prumery (x y)
   (mapcar #'av x y)
)
 
;nebo pres nepojmenovanou funkci = "lambda"
(defun prum (x y)
     (mapcar #'(lambda (a b) (/(+ a b) 2)) x y)
)
 
;funkce ktera vrati nejvetsi prvek
(defun mx(a b)
  (if (> a b) a b)
)
 
(Defun maxx (&rest seznam)
  (if (eq (cdr seznam) nil) 
     (car seznam) 
     (mx (car seznam) (apply #'maxx (cdr seznam)))
  )
)
 
 
(defun maax (x &rest y)
   (setf tmp x)
   (mapc #'(lambda (z) (if (> z tmp) (setf tmp z))) y)
   tmp
)
jui/cviko3.txt · Last modified: 2011/08/16 22:33 (external edit)
Back to top
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0