I think what's been posted, particularly:
(defun list_Ltrim (lst posit)
(cond ((null lst) nil)
((> posit 0) (list_Ltrim (cdr lst) (1- posit)))
(lst)
)
)
are very good solutions, and generally follow the approach I'd take.
But solely for fun, obfuscation and a demonstration of "thinking outside the box" consider why this works (code distilled to re-useable functions):
(defun MakeKeys ( lst / key )
(setq key -1)
(mapcar '(lambda (item) (setq key (1+ key))) lst)
)
(defun IndexList ( lst )
(mapcar 'cons
(MakeKeys lst)
lst
)
)
(defun LeftTrimList ( lst n / index )
(if (< n 1) lst
(mapcar 'cdr
(member
(assoc n (setq index (IndexList lst)))
index
)
)
)
)
(setq lst '(A B C D E F G H I))
(LeftTrimList lst 5) => (F G H I)
(LeftTrimList lst -1) => (A B C D E F G H I)
(LeftTrimList lst 99) => nil
Cheers.