Code Explanation:
1. Function Definition
def make_adder(x):
return lambda y: lambda z: x + y + z
Explanation:
This defines a function called make_adder that takes one argument x.
Inside the function, it returns a lambda function, which itself returns another lambda function.
So, it's a function that returns a function that returns a function.
Structure:
make_adder(x)
└── lambda y:
└── lambda z: x + y + z
Each time you call a lambda, it returns another function until all arguments x, y, and z are supplied.
2. First Function Call
f = make_adder(2)
Explanation:
You're calling make_adder(2), so now x = 2.
This returns a new function: lambda y: lambda z: 2 + y + z
The variable f now holds this function:
f = lambda y: lambda z: 2 + y + z
3. Second Function Call
g = f(3)
Explanation:
Now f is lambda y: lambda z: 2 + y + z
You're calling f(3), so y = 3
This evaluates to:
g = lambda z: 2 + 3 + z
So g is now a function that takes one argument z and returns 2 + 3 + z (which is 5 + z).
4. Final Function Call
print(g(4))
Explanation:
Now g = lambda z: 5 + z
Calling g(4) means z = 4, so:
g(4) = 5 + 4 = 9
So the output is:
9
Final Output
9
Download Book - 500 Days Python Coding Challenges with Explanation
.png)

0 Comments:
Post a Comment