Benchmark: timing 10000 iterations of iterate, recurse... iterate: 2 wallclock secs ( 1.53 usr + 0.00 sys = 1.53 CPU) @ 6535.95/s (n=10000) recurse: 23 wallclock secs (22.82 usr + 0.00 sys = 22.82 CPU) @ 438.21/s (n=10000) Rate recurse iterate recurse 438/s -- -93% iterate 6536/s 1392% --