Recursion in programs, thought, and language