"""Prep 6 Synthesize === CSC148 Summer 2021 === Department of Mathematical and Computational Sciences, University of Toronto Mississauga === Module Description === Your task in this prep is to implement each of the following recursive functions on nested lists, using the following steps for *Recursive Function Design*: 1. Identify the recursive structure of the input (in this case, always a nested list), and write down the code template for nested lists: def f(obj: Union[int, List]) -> ...: if isinstance(obj, int): ... else: ... for sublist in obj: ... f(sublist) ... ... 2. Implement the base case(s) directly (in this case, a single integer). 3. Write down a concrete example with a somewhat complex argument, (in this case, a nested list with around 3 sub-nested-lists), and then write down the relevant recursive calls and what they should return. 4. Determine how to combine the recursive calls to compute the correct output. Make sure you can express this in English first, and then implement your idea. HINT: The implementations here should be similar to ones you've seen before in the readings or comprehension questions. """ from typing import Union, List def num_of_positives(obj: Union[int, List]) -> int: """Return the number of positive integers in . Remember, 0 is *not* positive. >>> num_of_positives(17) 1 >>> num_of_positives(-10) 0 >>> num_of_positives([1, -2, [-10, 2, [3], 4, -5], 4]) 5 """ pass def max_nested(obj: Union[int, List]) -> int: """Return the maximum integer stored in nested list . Return 0 if is an empty list. Precondition: all integers in are positive. >>> max_nested(17) 17 >>> max_nested([1, 2, [1, 2, [3], 4, 5], 4]) 5 """ pass def maximum_length(obj: Union[int, List]) -> int: """Return the maximum length of any list in nested list . The *maximum length* of a nested list is defined as: 1. 0, if is a number. 2. The maximum of len(obj) and the lengths of the nested lists contained in , if is a list. >>> maximum_length(17) 0 >>> maximum_length([1, 2, [1, 2], 4]) 4 >>> maximum_length([1, 2, [1, 2, [3], 4, 5], 4]) 5 """ pass if __name__ == '__main__': import doctest doctest.testmod() import python_ta python_ta.check_all()