f1takes in two arguments, but completely ignores its second argument during evaluation. Let's see what happens when we actually pass some arguments to the function:
1 + 1 = 2, but what happened with our second argument
(2 ^ 58)? It was never needed during function execution so it was actually never evaluated. From this example, we can see how lazy evaluation can save computational time by not doing unnecessary computations.