Question 1: Lambda the Free

Use Ok to test your knowledge with the following "What Would Python Display?" questions:

$ python ok -q lambda -u

As a reminder, the following two lines of code will not display anything in the Python interpreter when executed:

>>> x = None >>> x
>>> lambda x: x # A lambda expression with one parameter x ______ >>> a = lambda x: x # Assigning the lambda function to the name a >>> a(5) ______ >>> (lambda: 3)() # Using a lambda expression as an operator in a call exp. ______ >>> b = lambda x: lambda: x # Lambdas can return other lambdas! >>> c = b(88) >>> c ______ >>> c() ______ >>> d = lambda f: f(4) # They can have functions as arguments as well. >>> def square(x): ... return x * x >>> d(square) ______
>>> x = None # remember to review the rules of WWPD given above! >>> x >>> lambda x: x ______
>>> z = 3 >>> e = lambda x: lambda y: lambda: x + y + z >>> e(0)(1)() ______ >>> f = lambda z: x + z >>> f(3) ______
>>> higher_order_lambda = lambda f: lambda x: f(x) >>> g = lambda x: x * x >>> higher_order_lambda(2)(g) # Which argument belongs to which function call? ______ >>> higher_order_lambda(g)(2) ______ >>> call_thrice = lambda f: lambda x: f(f(f(x))) >>> call_thrice(lambda y: y + 1)(0) ______ >>> print_lambda = lambda z: print(z) # When is the return expression of a lambda expression executed? >>> print_lambda ______ >>> one_thousand = print_lambda(1000) ______ >>> one_thousand ______