Basically, practice makes perfect, especially with recursion. Oh yes, I learned recursion taking a course in data structures long ago, and re-learned recursion when learning C. I have never used recursion in production that I can remember. That is not true with Lisp dialects.

There are other ways to remove list duplicates, but I wanted to roll my own on this one. I made two mistakes. One was not having an else for the second if expression. The other was checking for null of new-seq instead of (first new-seq).