Drobné programy (C, C++, C#, ...)
Detail souboru
Zdrojový kód
; spojeni seznamu
(defun spoj (L1 L2)
(cond ((null L1) L2)
(t (cons (car L1) (spoj (cdr L1) L2)))
)
)
;obraceni obecneho seznamu
(defun obrat_ob (L)
(cond ((null L) ())
((atom (car L)) (spoj (obrat_ob (cdr L)) (cons (car L) ())))
(t (spoj (obrat_ob (cdr L)) (cons (obrat_ob (car L)) ())))
)
)
; test zda je prvek obsazen v obecnem seznamu
(defun je_prvek_ob (E L)
(cond ((null L) ())
((atom (car L)) (or (= E (car L)) (je_prvek_ob E (cdr L))))
(t (or (je_prvek_ob E (car L)) (je_prvek_ob E (cdr L))))
)
)
; prumer prvku obecneho seznamu
(defun prumer_prvku_ob (L)
(cond ((null L) ())
(t (/ (soucet_prvku_ob L) (pocet_prvku_ob L)))
)
)
; pomocna funkce -- vraci pocet prvku obecneho seznamu
(defun pocet_prvku_ob (L)
(cond ((null L) 0)
((atom (car L)) (+ 1 (pocet_prvku_ob (cdr L))))
(t (+ (pocet_prvku_ob (car L)) (pocet_prvku_ob (cdr L))))
)
)
; soucet prvku obecneho seznamu
(defun soucet_prvku_ob (L)
(cond ((null L) 0)
((atom (car L)) (+ (car L) (soucet_prvku_ob (cdr L))))
(t (+ (soucet_prvku_ob (car L)) (soucet_prvku_ob (cdr L))))
)
)
; overeni monotonnosti linearniho seznamu
(defun monotonnost_lin (L)
(or (nerost_lin L) (nekles_lin L))
)
; pomocna funkce -- fraci T pokud je posloupnost nerostouci
(defun nerost_lin (L)
(cond ((null L) t)
((null (cdr L)) t)
(t (and (>= (car L) (car (cdr L))) (nerost_lin (cdr L))))
)
)
; pomocna funkce -- fraci T pokud je posloupnost neklesajici
(defun nekles_lin (L)
(cond ((null L) t)
((null (cdr L)) t)
(t (and (<= (car L) (car (cdr L))) (nekles_lin (cdr L))))
)
)