Take a possibly nested list of items, a test function, and a transformation function, Return a list identical to the input list except that the items passing the test functions are altered with the transformation function. For example, if the input list is [[1, 2], [3, 4]], the test function is lambda x: x % 2 == 0, and the transformation function is lambda x: x * 2, then the output should be [[1, 4], [3, 8]].

Updated: