Make this recursiveMost likely, it was intended as a joke (albeit a poor one). However, will recursion really improve getLine()?
In general, recursion leads to code that is more difficult to understand. Given the stack-based nature of recursion, it's harder to conceptualize vs. regular iterative code. In some situations, it's worth the extra effort to find a recursive method because an iterative solution is difficult or impossible. One example of this is reversing a string because recursion naturally creates a stack that the coder would have to implement in an iterative function.
That said, I can't see any feasible reason why we'd need a stack for getLine() but let's be Mythbusters and try it anyway. I used Python's timeit library to run tests on the two variations of getLine().
testRecursion.py returns the following results:
Iterative: 11.3675792217
Recursive: 11.7112400532
So a recursive solution is slower (no surprise, as generating each function call in the stack takes up valuable number-crunching time) but not by a whole lot. Sorry Zirak but I'll keep this solution iterative.
Finally, a Haiku about this process (not generated by Python):
Zirak says: recurse!
Never used timeit before
Turns out I am right
No comments:
Post a Comment