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