Differences

This shows you the differences between two versions of the page.

Link to this comparison view

jui:cviko3 [2011/08/16 22:33] (current)
Line 1: Line 1:
 +====== JUI - 3. cviceni ======
  
 +<code lisp>
 +;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
 +)
 +</​code>​
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