Recursive programs avoid the need for local variables and extra
state information. The ideas of functional programming, including
function mapping and lambda functions, and powerful and often not
appreciated.
Although recursion can be very inefficient, tail recursion, when
recognized by the compiler, makes this approach as efficient as iteration.
Key topics from last time include
- t/nil and Boolean functions.
- eq, eql, equal, equalp, and = tests for equality and role in functions
like member and subst.
- Recursive programming for traversing lists. (How would it work for
traversing a tree?)
- Tail recursive functions, compiling functions, and "stack overflow" messages.
- Function arguments.
- Anonymous (lambda) functions.