Well, while I still don't have a full grasp of it yet, I do have some things I'd like to point out that might not jump right out at a newbie. Then again, recursion is not for the newbie lisper (programmer) by any strecth. Here goes: First, just like defining a function or lambda expression, you need to supply as many arguments as are being called for. Ex.
(defun test (x y z / a b c)
)
(mapcar '(lambda (x) (convert x to "z")) newlist)
(defun recurse (sslist)
(recurse (External{sslist}Function))
)
Some people know that a defun can pull information in from external functions. If they don't, they should now. That would be what the first parsed example would do.
The lambda expression's X value uses whatever would be in newlist from mapcar to process the information contained in it. Mapcar Lambda is quite similar in nature to foreach as I understand it. It takes each element in a list, one item at a time and does what is required until it reaches the end of the list.
I've brought all that up because I feel without that knowledge, it would blow more than one circuit for anybody to understand recursion. As is shown by all the examples above, the recursive process requires just as many arguments inside the recurring procedure as it does when it's being called. Now, as I understand it, what is taking place is every time the procedure calls itself, it takes whatever information it has stored, processes itself again and stores that value with the other stored value(s) until it reaches the end of a given cycle. The warning flag with recursion is that if you don't supply some way for the procedure to stop itself, it will literally go on forever if you have enough memory in your system.
Now, I would like to ask some questions. How does recursion relate to append? Does it? How does recursion give you any return value when it's done, since after it processes all that it can, it proceeds to nil out each value from the last to the first? This is where I'm stuck. How do I keep all the values it stores after the procedure is complete?