In labs this week, we had to use recursion on computational problems. At first, the problems were difficult (possibly due to me skipping class this week). Eventually the lab was solved, though our solutions were not the most efficient. Instead of confining all of our code to the return statement and using built in methods such as 'is' and 'isinstance', like in the examples done in class, we coded it the previous way and had to futz with it for quite a while before it started working. We couldn't figure out why the program wouldn't stop once it got the correct value, but would keep recurring and sometimes wouldn't return what we were looking for. After getting home from the lab I took a second look at the class slides and examples, and quickly figured out how to do it with only using code within the return statement (though getting used to the syntax did take a moment). Now, even though the program would keep recurring even after getting the correct value, all return values were stored and the max return value was the one printed. Since max(True, False) = True, putting the code within a max(...) statement would always return the correct statement, since just needed to know if at least one iteration of the function would return True. I'm glad I understand this better now, and will be trying to code everything in this more efficient way from now on.