You're right vovka, juggling too much here and I combined 2 different approaches. Should have tried it before posting it. :facepalm:
Here's a quick alternate:
(defun ApplyFooToNth ( foo n lst / bar )
(defun bar ( a )
(if (eq n (setq i (1+ i)))
(progn (defun bar (a) a) (foo a))
a
)
)
((lambda (i) (mapcar 'bar lst)) -1)
)
(ApplyFooToNth (lambda (x) (+ 7 x))
0 '(1 2 3 4 5)) => (
8 2 3 4 5)
(ApplyFooToNth (lambda (x) (+ 7 x))
1 '(1 2 3 4 5)) => (1
9 3 4 5)
(ApplyFooToNth (lambda (x) (+ 7 x))
2 '(1 2 3 4 5)) => (1 2
10 4 5)
(ApplyFooToNth (lambda (x) (+ 7 x))
3 '(1 2 3 4 5)) => (1 2 3
11 5)
(ApplyFooToNth (lambda (x) (+ 7 x))
4 '(1 2 3 4 5)) => (1 2 3 4
12)
My apologies peeps and thank you vovka.