Zoznam sa kopíruje do výsledku, pritom sa počítajú prvky, keď je na výstupe už n prvkov pôvodného zoznamu, vloží sa prvok a zvyšok zoznamu. Počítanie je výhodné robiť tak, že rekurzívne voláme funkciu zo zmenšujúcim sa n (- n 1) a keď je n rovné 0 vieme, že už sme za n-tým prvkom pôvodného zoznamu.
; Prvý prvok má index 1.
; Ak bude n>počet prvkov zoznamu, aplikuje sa na ukončenie prvá vetva
; v cond a vráti sa zoznam rovnaký ako bol pôvodný.
(defun vlozza (n sv zoz)
(cond ((null zoz) NIL)
((= n 0) (cons sv zoz))
(T (cons (first zoz) (vlozza (- n 1) sv (rest zoz))))
)
)
; Príklady:
(vlozza 2 'x '(1 2 3)) ; -> (1 2 x 3)
(vlozza 7 'x '(1 2 3)) ; -> (1 2 3)
; Ak sa pokúsime s-výraz vložiť za nultý prvok, pridá sa správne
; na začiatok, pretože prvý prvok má index 1.
(vlozza 0 'x '(1 2 3)) ; -> (x 1 2 3)