I\'ve recently seen in a couple of different places comments along the lines of, \"I learned about recursion in school, but have never used it or felt the need for it since
In my opinion, recursive algorithms are a natural fit when the data structure is also recursive.
def traverse(node, function): function(this) for each childnode in children: traverse(childnode, function)
I can't see why I'd want to write that iteratively.