Inak povedané, hlavná funkcia má vrátiť minimálne číslo, zo všetkých čísel väčších ako zadané číslo.
Základom môže byť všeobecná schéma spracovania na ľubovolnej úrovni.
Jedným z možných riešení je, že v hlavnej funkcií použijeme funkciu mymin, vracajúcu minimálne číslo spomedzi 2 argumentov. Pričom v medzi argumentmi môžu byť aj iné prvky ako len čísla (tie sa potom ignorujú).
(defun mymin (a b)
(cond ((AND (NUMBERP a) (NUMBERP b)) (min a b))
((NUMBERP a) a)
((NUMBERP b) b)
(T NIL)
)
)
; Hlavná funkcia.
(defun gtmin (cislo sv)
(cond ((AND (NUMBERP sv) (> sv cislo)) sv)
((ATOM sv) NIL)
(T (mymin (gtmin cislo (first sv)) (gtmin cislo (rest sv))))
)
)
; Príklady:
(gtmin 5 '(1 2 (3 4 (5 6 7)) 5)) ; -> 6
(gtmin -9 '(-8 (-9 -10) ((-1)))) ; -> -8