Základom je zredukovaná všeobecná schéma spracovania na ľubovolnej úrovni.

Výhodné je použiť funkciu max, vracajúcu maximálne číslo z argumentov. Výhodné je tiež použiť pomocný argument.


(defun maxzozpom (sv poc)
 (cond ((ATOM sv) poc)
       (T (max (maxzozpom (first sv) 0) (maxzozpom (rest sv) (+ poc 1))))
 )
)

; V hlavnej funkcii inicializujem maxzozpom na 0.
(defun maxzoz (sv)
 (maxzozpom sv 0)
)

; Príklady:
(maxzoz '(1 2 (1 2 3 4 5) 4))       ; -> 5
(maxzoz '(1 2 (1 (1) 3 4 (1)) (4))) ; -> 5

Autori[ ZADANIE | AKO ZAČAŤ | RIEŠENIE ]
Posledná aktualizácia 4. 9. 2001
back  home  next