If non recursive functions are allowed, here's mine
(defun gile2 (lst / item tmp result)
(while lst
(if (numberp (setq item (car lst)))
(if (not (vl-position item tmp))
(setq tmp (cons item tmp))
)
(setq result (append tmp result)
tmp (list item)
)
)
(setq lst (cdr lst))
)
(reverse (append tmp result))
)