added an optional recursive solution. The itterative one is slightly faster, and due to LISP's loop marco, less code.