Prechádzame zoznam a sledujeme čísla. Aktuálne minimum uchovávame v pomocnom argumente funkcie. Po prejdení zoznamu vypíšeme minimum - pomocný argument.
Predpokladá sa, že zoznam (postupnosť) bude neprázdny,
inak treba upraviť funkciu mainmin.
(defun minpom (zoz minimum)
(cond ((null zoz) minimum)
((< (first zoz) minimum) (minpom (rest zoz) (first zoz)))
(T (minpom (rest zoz) minimum))
)
)
Inicializujem prvou hodnotou zoznamu a prehľadávam zvyšok.
(defun min (zoz)
(minpom (rest zoz) (first zoz))
)
Príklady:
(min '(1 2 0 1 -7 1)) -> -7
(min '(10)) -> 10