JUI - 4. cviceni

Vystupni funkce

;;format out_stream "format_retezec"
 
;; t = stream na nejvyssi urovni
(format t "~A - ~A je ~A" 3 2 (- 3 2))
 
3 - 2 je 1
 
;;~A tiskne jako princ
 
nebo ~S jako print
~F realne cislo
 
(Defun interpret()
  (print "hlaska>")
  (print (Eval (Read))))
  (interpret)
)

Vstupni funkce

;; read - precte vyraz lispu
;; read-line, read-char
 
(read)
;;pak zadame 
(3 
4 
a
b)
;;vystup: (3 4 a b)

;;funkce chci cislo, ktera precte vstup a opakuje tak dlouho dokud neni cislo ktere vytiskne
(defun cislo (hlaska)
  (loop
    (print hlaska)
    (setf a (read))
    (when (numberp a) (format t "~a ~%" a) (return a))
  )
)
 
;;precte cislo
(defun cticislo (hlaska)
  (loop
    (print hlaska)
    (setf a (read))
    (when (numberp a) (return a))
  )
)
 
;;funkce, ktera precte cislo a vypise n znaku x za sebou
(defun xkrat ()
  (setf n (cticislo "Zadej n:"))
  (dotimes (i n) (princ 'X))
)
 
;;funkce, ktera precte dva seznamy, a vypise spojeny seznam  (skolni priklad, nepouzivat append)
(defun spoj (a b)
  (cond
    ((car a) (cons (car a) (spoj (cdr a) b)))
    (t b)
  )
)
 
(defun vytiskni-spoj ()
  (print "zadej 1. seznam")
  (setf a (read))
  (print "zadej 2. seznam")
  (setf b (read))
  (print (spoj a b))
)
 
;;funkce, ktera precte prvek, index a seznam a vlozi prvek na dane misto v seznamu
(defun vloz (seznam kam prvek)
  (cond 
    ((null seznam) (cons prvek seznam)) ;;pretekli jsme index, vlozime ihned a vylezeme nahoru
    ( (> kam 0) (cons (car seznam) (vloz (cdr seznam) (1- kam) prvek))) ;;zanorime se o krok niz
    (t (cons prvek seznam)) ;;jsme na spravne pozici
  )
)
jui/cviko4.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